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 }