コード例 #1
0
/* ARGSUSED */
static void 
SashFocusIn(
        Widget w,
        XEvent *event,
        char **params,
        Cardinal *num_params )
{
    register XmSashWidget sash = (XmSashWidget) w;

    if (event->xany.type != FocusIn || !event->xfocus.send_event)
          return;

    if (_XmGetFocusPolicy( (Widget) sash) == XmEXPLICIT)
       HighlightSash(w);


    XmeDrawShadows (XtDisplay (w), XtWindow (w),
                     sash->primitive.top_shadow_GC,
                     sash->primitive.bottom_shadow_GC,
                     0,0,w->core.width, w->core.height,
                     sash->primitive.shadow_thickness,
		     XmSHADOW_OUT);

    sash->sash.has_focus = True;
}
コード例 #2
0
ファイル: Frame.c プロジェクト: CPFDSoftware-Tony/gmv
/************************************************************************
 *
 *  DrawShadow
 *	Draw the Frame shadow
 *
 ************************************************************************/
static void
DrawShadow(
        XmFrameWidget fw )
{
   if (XtIsRealized((Widget)fw)) {
       XmeDrawShadows(XtDisplay (fw), XtWindow (fw),
		fw->manager.top_shadow_GC, fw->manager.bottom_shadow_GC,
		fw->frame.old_shadow_x, fw->frame.old_shadow_y,
		fw->frame.old_width, fw->frame.old_height,
		fw->frame.old_shadow_thickness, fw->frame.shadow_type);
   }
}
コード例 #3
0
ファイル: ObsoXme.c プロジェクト: CPFDSoftware-Tony/gmv
/****************************_XmDrawShadows****************************/
void _XmDrawShadows(Display *display, Drawable d, 
		    GC top_gc, GC bottom_gc, 
#if NeedWidePrototypes
		    int x, int y, 
		    int width, int height, int shad_thick, 
#else
		    Position x, Position y, 
		    Dimension width, Dimension height, Dimension shad_thick, 
#endif
		    unsigned int shad_type)
{
    XmeDrawShadows(display, d, top_gc, bottom_gc, x, y, width, height,
		   shad_thick, shad_type);
} 
コード例 #4
0
static void
DrawBorder(Widget widg) 
{
  XmGrabShellWidget gs = (XmGrabShellWidget)widg;
  int offset = 0;
  
  XmeDrawShadows(XtDisplay(widg), XtWindow(widg),
		 gs->grab_shell.top_shadow_GC,
		 gs->grab_shell.bottom_shadow_GC,
		 offset, offset,
		 XtWidth(widg) - 2 * offset,
		 XtHeight(widg) - 2 * offset,
		 gs->grab_shell.shadow_thickness,
		 XmSHADOW_OUT);
}
コード例 #5
0
/* ARGSUSED */
static void 
Redisplay(
        Widget w,
        XEvent *event,
        Region region )
{
   register XmSashWidget sash = (XmSashWidget) w;

     XmeDrawShadows (XtDisplay (w), XtWindow (w), 
                      sash->primitive.top_shadow_GC,
                      sash->primitive.bottom_shadow_GC, 
		      0,0,w->core.width, w->core.height,
                      sash->primitive.shadow_thickness,
		      XmSHADOW_OUT);

     if (sash->sash.has_focus) HighlightSash(w);
}
コード例 #6
0
ファイル: gui_xmebw.c プロジェクト: oddstr/macvim_extended
    static void
draw_shadows(XmEnhancedButtonWidget eb)
{
    GC		top_gc;
    GC		bottom_gc;
    Boolean	etched_in;

    if (!eb->primitive.shadow_thickness)
       return;

    if ((eb->core.width <= 2 * eb->primitive.highlight_thickness)
	    || (eb->core.height <= 2 * eb->primitive.highlight_thickness))
	return;

#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
    {
	XmDisplay	dpy;

	dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(eb));
	etched_in = dpy->display.enable_etched_in_menu;
    }
#else
    etched_in = False;
#endif
    if (!etched_in ^ eb->pushbutton.armed)
    {
	top_gc = eb->primitive.top_shadow_GC;
	bottom_gc = eb->primitive.bottom_shadow_GC;
    }
    else
    {
	top_gc = eb->primitive.bottom_shadow_GC;
	bottom_gc = eb->primitive.top_shadow_GC;
    }

    XmeDrawShadows(XtDisplay(eb), XtWindow(eb),
	    top_gc,
	    bottom_gc,
	    eb->primitive.highlight_thickness,
	    eb->primitive.highlight_thickness,
	    eb->core.width - 2 * eb->primitive.highlight_thickness,
	    eb->core.height - 2 * eb->primitive.highlight_thickness,
	    eb->primitive.shadow_thickness,
	    (unsigned)(etched_in ? XmSHADOW_IN : XmSHADOW_OUT));
}
コード例 #7
0
static void 
Redisplay(
        Widget wid,
        XEvent *event,
        Region region )
{
  XmArrowButtonWidget aw = (XmArrowButtonWidget) wid;
  int iwidth, iheight;
  XtExposeProc expose;
  
  iwidth = (int) aw->core.width - 2 * aw->primitive.highlight_thickness;
  iheight = (int) aw->core.height - 2 * aw->primitive.highlight_thickness;
  
  /*  Draw the arrow  */
  if ((iwidth > 0) && (iheight > 0))
    {
      if (aw->primitive.shadow_thickness > 0)
	XmeDrawShadows(XtDisplay (aw), XtWindow (aw),
		       aw->primitive.top_shadow_GC,
		       aw->primitive.bottom_shadow_GC,
		       aw->primitive.highlight_thickness,
		       aw->primitive.highlight_thickness,
		       aw->core.width - 2 * aw->primitive.highlight_thickness,
		       aw->core.height - 2 * aw->primitive.highlight_thickness,
		       aw->primitive.shadow_thickness,
		       XmSHADOW_OUT);
      
      if (aw->arrowbutton.selected && XtIsSensitive(wid))
	DrawArrow(aw, aw->primitive.bottom_shadow_GC,
		  aw->primitive.top_shadow_GC, aw->arrowbutton.arrow_GC);
      else
	DrawArrow(aw, aw->primitive.top_shadow_GC,
		  aw->primitive.bottom_shadow_GC,
		  (XtIsSensitive(wid) ?
		   aw->arrowbutton.arrow_GC : aw->arrowbutton.insensitive_GC));
    }
  
  /* Envelop our superclass expose method */
  _XmProcessLock();
  expose = xmPrimitiveClassRec.core_class.expose;
  _XmProcessUnlock(); 
  (*(expose)) ((Widget) aw, event, region);
}
コード例 #8
0
ファイル: Simple.c プロジェクト: fjardon/motif
/******************************************************************************
 *
 *  DrawShadow:
 *      Called by Redisplay.
 *
 *****************************************************************************/
static void 
DrawShadow (
        Widget w
           )
{
 ExmSimpleWidget sw = (ExmSimpleWidget)w;

 /* If there is enough room in the widget to draw a shadow, 
    and if the shadow thickness resource is nonzero, then draw a 
    Motif-style shadow in the appropriate place around the widget's border. */ 
   if (sw->core.width  > (2 * sw->primitive.highlight_thickness) &&
       sw->core.height > (2 * sw->primitive.highlight_thickness) &&
       sw->primitive.shadow_thickness > 0) 
     XmeDrawShadows (XtDisplay (sw), XtWindow (sw),
      		     sw->primitive.top_shadow_GC,
      		     sw->primitive.bottom_shadow_GC,
      		     sw->primitive.highlight_thickness,
      		     sw->primitive.highlight_thickness,
      		     sw->core.width - (2 * sw->primitive.highlight_thickness),
      		     sw->core.height - (2 * sw->primitive.highlight_thickness),
      		     sw->primitive.shadow_thickness, 
                     XmSHADOW_ETCHED_OUT);
}
コード例 #9
0
ファイル: Panner.c プロジェクト: unix-junkie/motif
/* ARGSUSED */
static void 
Redisplay(Widget gw, XEvent * event, Region region)
{
    XmPannerWidget pw = (XmPannerWidget) gw;
    Display *dpy = XtDisplay(gw);
    Window w = XtWindow(gw);
    int pad = (XmPanner_internal_border(pw) +
	       pw->primitive.highlight_thickness +
	       pw->primitive.shadow_thickness);
    int dx, dy, width, height;
    int kx = XmPanner_knob_x(pw) + pad, ky = XmPanner_knob_y(pw) + pad;

    XmPanner_tmp(pw).showing = FALSE;

    if (event != NULL) {
	dx = dy = pw->primitive.highlight_thickness;
	width = pw->core.width - (2 * dx);
	height = pw->core.height - (2 * dy);
	
	_XmDrawShadows(XtDisplay(gw), XtWindow(gw), 
		       pw->primitive.bottom_shadow_GC, 
		       pw->primitive.top_shadow_GC, dx, dy, width, height,
		       pw->primitive.shadow_thickness, XmSHADOW_OUT);

	if (pw->primitive.highlighted) 
	    (*(xmPrimitiveClassRec.primitive_class.border_highlight))(gw);
	else
	    (*(xmPrimitiveClassRec.primitive_class.border_unhighlight))(gw);
    }

    if ((XmPanner_tmp(pw).doing && XmPanner_rubber_band(pw)) || (event == NULL))
    {
	XClearArea (XtDisplay(pw), XtWindow(pw), 
		    (int) XmPanner_last_x(pw) + pad, 
		    (int) XmPanner_last_y(pw) + pad, 
		    (unsigned int) (XmPanner_knob_width(pw)),
		    (unsigned int) (XmPanner_knob_height(pw)),
		    False);
    }

    XmPanner_last_x(pw) = XmPanner_knob_x(pw);
    XmPanner_last_y(pw) = XmPanner_knob_y(pw);

    XmeDrawShadows(XtDisplay(gw), XtWindow(gw), 
		   pw->primitive.top_shadow_GC,
		   pw->primitive.bottom_shadow_GC,
		   kx, ky, XmPanner_knob_width(pw), XmPanner_knob_height(pw),
		   pw->primitive.shadow_thickness, XmSHADOW_OUT);

    dx = kx + pw->primitive.shadow_thickness;
    dy = ky + pw->primitive.shadow_thickness;

    if (((int)XmPanner_knob_width(pw) >
	 (int)(2 * pw->primitive.shadow_thickness)) &&
	((int)XmPanner_knob_height(pw) >
	 (int)(2 * pw->primitive.shadow_thickness)))
    {
	width = XmPanner_knob_width(pw) - (2 * pw->primitive.shadow_thickness);
	height = XmPanner_knob_height(pw) - (2 * pw->primitive.shadow_thickness);
	
	XFillRectangle (dpy, w, XmPanner_slider_gc(pw), dx, dy, width, height);
    }

    if (XmPanner_tmp(pw).doing && XmPanner_rubber_band(pw)) 
	DRAW_TMP (pw);
}
コード例 #10
0
ファイル: gui_xmebw.c プロジェクト: oddstr/macvim_extended
/*ARGSUSED*/
    static void
Enter(Widget wid, XEvent *event, String *params, Cardinal *num_params)
{
    XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) wid;
    XmPushButtonCallbackStruct call_value;

    if (Lab_IsMenupane(eb))
    {
	if ((((ShellWidget) XtParent(XtParent(eb)))->shell.popped_up)
		&& _XmGetInDragMode((Widget) eb))
	{
#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
	    XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid));
	    Boolean etched_in = dpy->display.enable_etched_in_menu;
#else
	    Boolean etched_in = False;
#endif

	    if (eb->pushbutton.armed)
		return;

	    /* ...so KHelp event is delivered correctly. */
	    _XmSetFocusFlag(XtParent(XtParent(eb)), XmFOCUS_IGNORE, TRUE);
	    XtSetKeyboardFocus(XtParent(XtParent(eb)), (Widget) eb);
	    _XmSetFocusFlag(XtParent(XtParent(eb)), XmFOCUS_IGNORE, FALSE);

	    eb->pushbutton.armed = TRUE;

	    ((XmManagerWidget) XtParent(wid))->manager.active_child = wid;

	    /* etched in menu button */
	    if (etched_in && !XmIsTearOffButton(eb))
	    {
		XFillRectangle(XtDisplay(eb), XtWindow(eb),
			       eb->pushbutton.fill_gc,
			       0, 0, eb->core.width, eb->core.height);
		draw_label(eb, event, NULL);
		draw_pixmap(eb, event, NULL);
	    }

	    if ((eb->core.width > 2 * eb->primitive.highlight_thickness)
		    && (eb->core.height >
				       2 * eb->primitive.highlight_thickness))
	    {
		XmeDrawShadows(XtDisplay(eb), XtWindow(eb),
			eb->primitive.top_shadow_GC,
			eb->primitive.bottom_shadow_GC,
			eb->primitive.highlight_thickness,
			eb->primitive.highlight_thickness,
			eb->core.width - 2 * eb->primitive.highlight_thickness,
			eb->core.height - 2 * eb->primitive.highlight_thickness,
			eb->primitive.shadow_thickness,
			(unsigned)(etched_in ? XmSHADOW_IN : XmSHADOW_OUT));
	    }

	    if (eb->pushbutton.arm_callback)
	    {
		XFlush(XtDisplay(eb));

		call_value.reason = (int)XmCR_ARM;
		call_value.event = event;
		XtCallCallbackList((Widget) eb,
				   eb->pushbutton.arm_callback,
				   &call_value);
	    }
	}
    }
    else
    {
	XtExposeProc expose;

	_XmPrimitiveEnter((Widget) eb, event, NULL, NULL);
	if (eb->pushbutton.armed == TRUE)
	{
	    XtProcessLock();
	    expose = XtClass(eb)->core_class.expose;
	    XtProcessUnlock();
	    (*expose) (wid, event, (Region) NULL);
	}

	draw_highlight(eb);
	draw_shadows(eb);
	draw_pixmap(eb, event, NULL);
    }
}