add MwNactivateHandler

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@331 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-14 18:34:29 +00:00
parent 81b3edd023
commit 8bbfeb5959
3 changed files with 25 additions and 18 deletions

View File

@@ -29,16 +29,16 @@
#define MwNiconPixmap "ViconPixmap" #define MwNiconPixmap "ViconPixmap"
#define MwNsizeHints "VsizeHints" #define MwNsizeHints "VsizeHints"
#define MwNactivateHandler "Cactivate" /* NULL */ #define MwNactivateHandler "Cactivate" /* NULL/int* (MwListBox) */
#define MwNresizeHandler "Cresize" /* NULL */ #define MwNresizeHandler "Cresize" /* NULL */
#define MwNtickHandler "Ctick" /* NULL */ #define MwNtickHandler "Ctick" /* NULL */
#define MwNmenuHandler "Cmenu" /* MwMenu */ #define MwNmenuHandler "Cmenu" /* MwMenu */
#define MwNmouseDownHandler "CmouseDownHandler" /* MwLLMouse* */ #define MwNmouseDownHandler "CmouseDown" /* MwLLMouse* */
#define MwNmouseUpHandler "CmouseUpHandler" /* asme as MwNmouseDownHandler */ #define MwNmouseUpHandler "CmouseUp" /* asme as MwNmouseDownHandler */
#define MwNmouseMoveHandler "CmouseMoveHandler" /* MwPoint* */ #define MwNmouseMoveHandler "CmouseMove" /* MwPoint* */
#define MwNchangedHandler "CchangedHandler" /* NULL */ #define MwNchangedHandler "Cchanged" /* NULL */
#define MwNkeyHandler "CkeyHandler" /* int* (MwLLKeyEnum or character code) */ #define MwNkeyHandler "Ckey" /* int* (MwLLKeyEnum or character code) */
#define MwNkeyReleaseHandler "CkeyReleaseHandler" /* same as MwNkeyHandler */ #define MwNkeyReleaseHandler "CkeyRelease" /* same as MwNkeyHandler */
#define MwNcloseHandler "CcloseHandler" /* NULL */ #define MwNcloseHandler "Cclose" /* NULL */
#endif #endif

View File

@@ -121,10 +121,11 @@ struct _MwViewport {
}; };
struct _MwListBox { struct _MwListBox {
MwWidget vscroll; MwWidget vscroll;
MwWidget frame; MwWidget frame;
char** list; char** list;
int selected; int selected;
unsigned long click_time;
}; };
struct _MwSizeHints { struct _MwSizeHints {

View File

@@ -29,7 +29,12 @@ static void frame_mouse_down(MwWidget handle, void* user, void* call) {
st = get_first_entry(lb); st = get_first_entry(lb);
for(i = 0; i < (h - MwDefaultBorderWidth * 2) / MwTextHeight(handle, "M"); i++) { for(i = 0; i < (h - MwDefaultBorderWidth * 2) / MwTextHeight(handle, "M"); i++) {
if(y <= m->point.y && m->point.y <= (y + MwTextHeight(handle, "M"))) { if(y <= m->point.y && m->point.y <= (y + MwTextHeight(handle, "M"))) {
lb->selected = st + i; unsigned long t;
if(((t = MwLLGetTick()) - lb->click_time) < 250 && lb->selected == st + i) {
MwDispatchUserHandler(handle->parent, MwNactivateHandler, &lb->selected);
}
lb->selected = st + i;
lb->click_time = t;
} }
y += MwTextHeight(handle, "M"); y += MwTextHeight(handle, "M");
} }
@@ -126,8 +131,9 @@ static int create(MwWidget handle) {
MwSetDefault(handle); MwSetDefault(handle);
resize(handle); resize(handle);
lb->list = NULL; lb->list = NULL;
lb->selected = -1; lb->selected = -1;
lb->click_time = 0;
return 0; return 0;
} }