Mercurial > vim
comparison src/gui_motif.c @ 844:d3bbb5dd3913 v7.0f02
updated for version 7.0f02
author | vimboss |
---|---|
date | Thu, 27 Apr 2006 00:02:13 +0000 |
parents | 9f279ebda751 |
children | 8cd729851562 |
comparison
equal
deleted
inserted
replaced
843:9f279ebda751 | 844:d3bbb5dd3913 |
---|---|
86 static void scroll_cb __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); | 86 static void scroll_cb __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); |
87 #ifdef FEAT_GUI_TABLINE | 87 #ifdef FEAT_GUI_TABLINE |
88 static void tabline_cb __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); | 88 static void tabline_cb __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); |
89 static void tabline_button_cb __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); | 89 static void tabline_button_cb __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); |
90 static void tabline_menu_cb __ARGS((Widget w, XtPointer closure, XEvent *e, Boolean *continue_dispatch)); | 90 static void tabline_menu_cb __ARGS((Widget w, XtPointer closure, XEvent *e, Boolean *continue_dispatch)); |
91 static void tabline_balloon_cb __ARGS((BalloonEval *beval, int state)); | |
91 #endif | 92 #endif |
92 #ifdef FEAT_TOOLBAR | 93 #ifdef FEAT_TOOLBAR |
93 # ifdef FEAT_FOOTER | 94 # ifdef FEAT_FOOTER |
94 static void toolbarbutton_enter_cb __ARGS((Widget, XtPointer, XEvent *, Boolean *)); | 95 static void toolbarbutton_enter_cb __ARGS((Widget, XtPointer, XEvent *, Boolean *)); |
95 static void toolbarbutton_leave_cb __ARGS((Widget, XtPointer, XEvent *, Boolean *)); | 96 static void toolbarbutton_leave_cb __ARGS((Widget, XtPointer, XEvent *, Boolean *)); |
250 } | 251 } |
251 | 252 |
252 if (event->button != Button3) | 253 if (event->button != Button3) |
253 return; | 254 return; |
254 | 255 |
256 /* When ignoring events don't show the menu. */ | |
257 if (hold_gui_events | |
258 # ifdef FEAT_CMDWIN | |
259 || cmdwin_type != 0 | |
260 # endif | |
261 ) | |
262 return; | |
263 | |
255 if (event->subwindow != None) | 264 if (event->subwindow != None) |
256 { | 265 { |
257 tab_w = XtWindowToWidget(XtDisplay(w), event->subwindow); | 266 tab_w = XtWindowToWidget(XtDisplay(w), event->subwindow); |
258 /* LINTED: avoid warning: dubious operation on enum */ | 267 /* LINTED: avoid warning: dubious operation on enum */ |
259 if (tab_w != (Widget)0 && XmIsPushButton(tab_w)) | 268 if (tab_w != (Widget)0 && XmIsPushButton(tab_w)) |
265 &numChildren, NULL); | 274 &numChildren, NULL); |
266 XtManageChildren(children, numChildren); | 275 XtManageChildren(children, numChildren); |
267 XmMenuPosition(tabLine_menu, (XButtonPressedEvent *)e) ; | 276 XmMenuPosition(tabLine_menu, (XButtonPressedEvent *)e) ; |
268 XtManageChild(tabLine_menu); | 277 XtManageChild(tabLine_menu); |
269 } | 278 } |
279 | |
280 /*ARGSUSED*/ | |
281 static void | |
282 tabline_balloon_cb(beval, state) | |
283 BalloonEval *beval; | |
284 int state; | |
285 { | |
286 int nr; | |
287 tabpage_T *tp; | |
288 | |
289 if (beval->target == (Widget)0) | |
290 return; | |
291 | |
292 XtVaGetValues(beval->target, XmNpageNumber, &nr, NULL); | |
293 tp = find_tabpage(nr); | |
294 if (tp == NULL) | |
295 return; | |
296 | |
297 get_tabline_label(tp, TRUE); | |
298 gui_mch_post_balloon(beval, NameBuff); | |
299 } | |
300 | |
270 #endif | 301 #endif |
271 | 302 |
272 /* | 303 /* |
273 * End of call-back routines | 304 * End of call-back routines |
274 */ | 305 */ |
1363 else | 1394 else |
1364 XtSetValues(menu->id, args, n); | 1395 XtSetValues(menu->id, args, n); |
1365 if (xms != NULL) | 1396 if (xms != NULL) |
1366 XmStringFree(xms); | 1397 XmStringFree(xms); |
1367 | 1398 |
1368 #ifdef FEAT_BEVAL | 1399 # ifdef FEAT_BEVAL |
1369 gui_mch_menu_set_tip(menu); | 1400 gui_mch_menu_set_tip(menu); |
1370 #endif | 1401 # endif |
1371 | 1402 |
1372 menu->parent = parent; | 1403 menu->parent = parent; |
1373 menu->submenu_id = NULL; | 1404 menu->submenu_id = NULL; |
1374 /* When adding first item to toolbar it might have to be enabled .*/ | 1405 /* When adding first item to toolbar it might have to be enabled .*/ |
1375 if (!XtIsManaged(XtParent(toolBar)) | 1406 if (!XtIsManaged(XtParent(toolBar)) |
3022 { | 3053 { |
3023 Arg args[1]; | 3054 Arg args[1]; |
3024 int n = 0; | 3055 int n = 0; |
3025 | 3056 |
3026 /* Enable/Disable tooltip (OK to enable while | 3057 /* Enable/Disable tooltip (OK to enable while |
3027 * currently enabled) | 3058 * currently enabled). */ |
3028 */ | |
3029 if (cur->tip != NULL) | 3059 if (cur->tip != NULL) |
3030 (*action)(cur->tip); | 3060 (*action)(cur->tip); |
3031 if (!menu_is_separator(cur->name)) | 3061 if (!menu_is_separator(cur->name)) |
3032 { | 3062 { |
3033 if (text == 1 || cur->xpm == NULL) | 3063 if (text == 1 || cur->xpm == NULL) |
3324 XmNotebookPageInfo page_info; | 3354 XmNotebookPageInfo page_info; |
3325 XmNotebookPageStatus page_status; | 3355 XmNotebookPageStatus page_status; |
3326 int last_page, tab_count; | 3356 int last_page, tab_count; |
3327 XmString label_str; | 3357 XmString label_str; |
3328 char *label_cstr; | 3358 char *label_cstr; |
3359 BalloonEval *beval; | |
3329 | 3360 |
3330 if (tabLine == (Widget)0) | 3361 if (tabLine == (Widget)0) |
3331 return; | 3362 return; |
3332 | 3363 |
3333 /* Add a label for each tab page. They all contain the same text area. */ | 3364 /* Add a label for each tab page. They all contain the same text area. */ |
3336 if (tp == curtab) | 3367 if (tp == curtab) |
3337 curtabidx = nr; | 3368 curtabidx = nr; |
3338 | 3369 |
3339 page_status = XmNotebookGetPageInfo(tabLine, nr, &page_info); | 3370 page_status = XmNotebookGetPageInfo(tabLine, nr, &page_info); |
3340 if (page_status == XmPAGE_INVALID | 3371 if (page_status == XmPAGE_INVALID |
3341 || page_info.major_tab_widget == (Widget)0) | 3372 || page_info.major_tab_widget == (Widget)0) |
3342 { | 3373 { |
3343 /* Add the tab */ | 3374 /* Add the tab */ |
3344 n = 0; | 3375 n = 0; |
3345 XtSetArg(args[n], XmNnotebookChildType, XmMAJOR_TAB); n++; | 3376 XtSetArg(args[n], XmNnotebookChildType, XmMAJOR_TAB); n++; |
3346 XtSetArg(args[n], XmNtraversalOn, False); n++; | 3377 XtSetArg(args[n], XmNtraversalOn, False); n++; |
3347 XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; | 3378 XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; |
3348 XtSetArg(args[n], XmNhighlightThickness, 1); n++; | 3379 XtSetArg(args[n], XmNhighlightThickness, 1); n++; |
3349 XtSetArg(args[n], XmNshadowThickness , 1); n++; | 3380 XtSetArg(args[n], XmNshadowThickness , 1); n++; |
3350 tab = XmCreatePushButton(tabLine, "-Empty-", args, n); | 3381 tab = XmCreatePushButton(tabLine, "-Empty-", args, n); |
3351 XtManageChild(tab); | 3382 XtManageChild(tab); |
3383 beval = gui_mch_create_beval_area(tab, NULL, tabline_balloon_cb, | |
3384 NULL); | |
3385 XtVaSetValues(tab, XmNuserData, beval, NULL); | |
3352 } | 3386 } |
3353 else | 3387 else |
3354 tab = page_info.major_tab_widget; | 3388 tab = page_info.major_tab_widget; |
3355 | 3389 |
3356 XtVaSetValues(tab, XmNpageNumber, nr, NULL); | 3390 XtVaSetValues(tab, XmNpageNumber, nr, NULL); |
3385 { | 3419 { |
3386 if (XmNotebookGetPageInfo(tabLine, nr, &page_info) != XmPAGE_INVALID | 3420 if (XmNotebookGetPageInfo(tabLine, nr, &page_info) != XmPAGE_INVALID |
3387 && page_info.page_number == nr | 3421 && page_info.page_number == nr |
3388 && page_info.major_tab_widget != (Widget)0) | 3422 && page_info.major_tab_widget != (Widget)0) |
3389 { | 3423 { |
3424 XtVaGetValues(page_info.major_tab_widget, XmNuserData, &beval, NULL); | |
3425 if (beval != NULL) | |
3426 gui_mch_destroy_beval_area(beval); | |
3390 XtUnmanageChild(page_info.major_tab_widget); | 3427 XtUnmanageChild(page_info.major_tab_widget); |
3391 XtDestroyWidget(page_info.major_tab_widget); | 3428 XtDestroyWidget(page_info.major_tab_widget); |
3392 } | 3429 } |
3393 nr++; | 3430 nr++; |
3394 } | 3431 } |