コード例 #1
0
void   ShowWarningDialog(char *message,XtCallbackProc CB1,XtCallbackProc CB2,char *Label1,char *Label2,int def)
{
   Arg args[4];
   XmString string,okstring,cancelstring;
   
   static void (*OkCB) () = NULL;
   static void (*CancelCB) () = NULL;
   
   string = XmStringCreateLtoR(message, XmFONTLIST_DEFAULT_TAG);
   okstring = XmStringCreateLtoR(Label1 == NULL ? "Yes" : Label2, XmFONTLIST_DEFAULT_TAG);
   cancelstring = XmStringCreateLtoR(Label2 == NULL ? "No" : Label1, XmFONTLIST_DEFAULT_TAG);
      
   if (OkCB != NULL && CancelCB != NULL)
   {
      XtRemoveCallback(warningDialog, XmNokCallback, OkCB, 0);
      XtRemoveCallback(warningDialog, XmNcancelCallback, CancelCB, 0);
   }
   
   OkCB = CB1 == NULL ? NullCB : CB1;
   CancelCB = CB2 == NULL ? NullCB : CB2;
   XtAddCallback(warningDialog, XmNokCallback, OkCB, 0);
   XtAddCallback(warningDialog, XmNcancelCallback, CancelCB, 0);
   
   XtSetArg(args[0], XmNmessageString, string);
   XtSetArg(args[1], XmNcancelLabelString, okstring);
   XtSetArg(args[2], XmNokLabelString, cancelstring);
   XtSetArg(args[3], XmNdefaultButtonType, def ? XmDIALOG_CANCEL_BUTTON : XmDIALOG_OK_BUTTON);
   XtSetValues(warningDialog, args, 4);
   XmStringFree(string);
   XmStringFree(okstring);
   XmStringFree(cancelstring);
   XtManageChild(warningDialog);
}
コード例 #2
0
// When W is to be destroyed, remove all references in Widget(CLIENT_DATA)
static void RemoveCallbacksCB(Widget w, XtPointer client_data, XtPointer)
{
    Widget ref = Widget(client_data);
    XtRemoveCallback(ref, XmNokCallback,      UnmanageThisCB, XtPointer(w));
    XtRemoveCallback(ref, XmNcancelCallback,  UnmanageThisCB, XtPointer(w));
    XtRemoveCallback(ref, XmNdestroyCallback, RemoveCallbacksCB, XtPointer(w));
}
コード例 #3
0
ファイル: AttachArea.C プロジェクト: juddy/edcde
void
AttachArea::unmanage()
{
    int i;
    Attachment **list = getList();

    // Unmanage the widgets it currently has
    for (i=0; i<getIconCount(); i++)
      list[i]->unmanageIconWidget();

    XtRemoveCallback(
	_clipWindow, 
	XmNresizeCallback, &AttachArea::resizeCallback,
	(XtPointer) this );

    XtRemoveCallback(
	_clipWindow, 
	XmNinputCallback, &AttachArea::inputCallback,
	(XtPointer) this );

    XtRemoveEventHandler(
	_clipWindow, ButtonPressMask,
        FALSE, MenuButtonHandler,
	(XtPointer) this);

    UIComponent::unmanage();
}
コード例 #4
0
ファイル: snd-xlistener.c プロジェクト: huangjs/cl
static void unpost_completion(Widget w)
{
  XtUnmanageChild(completions_dialog);
  XtRemoveCallback(w, XmNmodifyVerifyCallback, unpost_completion_from_modify, NULL);
  XtRemoveCallback(w, XmNactivateCallback, unpost_completion_from_activate, NULL);
  ss->sgx->completion_requestor = NULL;
  ss->sgx->completion_requestor_dialog = NULL;    
}
コード例 #5
0
ファイル: SpinBox2.c プロジェクト: unix-junkie/motif
void
main (int argc, char **argv)
{
    Arg args[10];
    int n;

    CommonTestInit (argc, argv);

    n=0;
    Parent = XmCreateFrame (Shell1, "Frame", args, n);
    XtManageChild (Parent);

    n=0;
    XtSetArg (args[n], XmNarrowLayout, XmARROWS_FLAT_END); n++;
    XtSetArg (args[n], XmNrepeatDelay, 0); n++;
    XtSetArg (args[n], XmNarrowOrientation, XmHORIZONTAL); n++;
    SpinBox1 = XmCreateSpinBox (Parent, "SpinBox1", args, n);
    XtManageChild (SpinBox1);
    XtAddCallback (SpinBox1, XmNvalueChangedCallback, ValueChanged,
    (XtPointer)NULL);
    XtAddCallback (SpinBox1, XmNmodifyVerifyCallback, ModifyVerify,
    (XtPointer)0);


    n=0;
    XtSetArg (args[n], XmNspinBoxChildType, XmNUMERIC); n++;
    XtSetArg (args[n], XmNminimumValue, 1); n++;
    XtSetArg (args[n], XmNmaximumValue, 10); n++;
    XtSetArg (args[n], XmNincrementValue, 3); n++;
    XtSetArg (args[n], XmNposition, 2); n++;
    XtSetArg (args[n], XmNpositionType, XmPOSITION_INDEX); n++;
    TextF1 = XmCreateTextField (SpinBox1, "TextF1", args,n);
    XtManageChild (TextF1);

    XtRealizeWidget (Shell1);

    CommonPause();
    CommonPause();
   
    XtAddCallback( SpinBox1, XmNmodifyVerifyCallback, CrossedBound,
                   (XtPointer)0 );
    CommonPause();
    XtRemoveCallback( SpinBox1, XmNmodifyVerifyCallback, CrossedBound,
                      (XtPointer)0 );
    XtAddCallback( SpinBox1, XmNmodifyVerifyCallback, SetPosition,
                   (XtPointer)0 );
    CommonPause();
    XtRemoveCallback( SpinBox1, XmNmodifyVerifyCallback, SetPosition,
                      (XtPointer)0 );
    CommonPause();
    CommonPause();

    XtAppMainLoop (app_context);

    
}
コード例 #6
0
ファイル: XsMDICanvas.C プロジェクト: 3v1n0/wxWidgets
void XsMDICanvas::_componentDestroyed ( )
{

// Remove the callbacks

   XtRemoveCallback (_drawArea, XmNresizeCallback, _canvasResizeCallback, (XtPointer)this);
   XtRemoveCallback (_clipWin, XmNresizeCallback, _clipResizeCallback, (XtPointer)this);
   
   _drawArea = 0;
   _clipWin = 0;
}
コード例 #7
0
void XFE_PrefsLdapPropDialog::cb_cancel(Widget    /* w */,
                                        XtPointer closure,
                                        XtPointer /* callData */)
{
    XFE_PrefsLdapPropDialog *theDialog = (XFE_PrefsLdapPropDialog *)closure;

    XtRemoveCallback(theDialog->m_chrome, XmNokCallback, cb_ok, theDialog);
    XtRemoveCallback(theDialog->m_chrome, XmNcancelCallback, cb_cancel, theDialog);

    // Delete the dialog

    delete theDialog;
}
コード例 #8
0
ファイル: gui.c プロジェクト: jeremysalwen/Ceres4
void GUI_GeneralSlider(Widget w,XtPointer client,XtPointer call){
  char text[20];
  struct CSlider *cslider=(struct CSlider *)client;
  char *freqtext;
  double value;
  double slidervalue;

  XmScrollBarCallbackStruct *wx=(XmScrollBarCallbackStruct *)call;

#ifdef USELESSTIF
  slidervalue=(double)(MAXSLIDERVAL-wx->value);
#else
  slidervalue=(double)wx->value;
#endif

  if(cslider->islog){
    double s=slidervalue/MAXSLIDERVAL;
    value=pow(DASE,log(cslider->maxval)*(s-(s*cslider->logval)+cslider->logval));
  }else{
    value=(slidervalue*(cslider->maxval-cslider->minval)/MAXSLIDERVAL)+cslider->minval;
  }

  if(cslider->isdouble){
    sprintf(text,"%.*f",cslider->resolution,value);
    GUI_CallCallBackDouble(cslider,value);
  }else{
    sprintf(text,"%d",(int)value);
    GUI_CallCallBackInt(cslider,(int)value);
  }
  
  XtRemoveCallback(cslider->textwidget,XmNvalueChangedCallback,GUI_GeneralTextField,cslider);
  if(cslider->freqtextwidget!=NULL)
    XtRemoveCallback(cslider->freqtextwidget,XmNvalueChangedCallback,GUI_GeneralFreqTextField,cslider);

  XmTextSetString(cslider->textwidget,text);

  if(cslider->freqtextwidget!=NULL){
    freqtext=GUI_freq2pitch(value);
    XmTextSetString(cslider->freqtextwidget,freqtext);
    free(freqtext);
  }

  XtAddCallback(cslider->textwidget,XmNvalueChangedCallback,GUI_GeneralTextField,cslider);
  if(cslider->freqtextwidget!=NULL)
    XtAddCallback(cslider->freqtextwidget,XmNvalueChangedCallback,GUI_GeneralFreqTextField,cslider);


  return;
}
コード例 #9
0
void
XFE_AttachmentMenu::update()
{
    Widget *kids;
    int nkids;

    XtVaGetValues (m_submenu, XmNchildren, &kids, XmNnumChildren, &nkids, 0);

    XtUnrealizeWidget(m_submenu);

    if (nkids)
    {
        kids = &(kids[m_firstslot]);
        nkids -= m_firstslot;

        XtUnmanageChildren (kids, nkids);
        fe_DestroyWidgetTree(kids, nkids);
    }

    add_attachment_menu_items(m_submenu);

    XtRealizeWidget(m_submenu);

    XtRemoveCallback(m_cascade, XmNcascadingCallback, update_cb, this);
}
コード例 #10
0
ファイル: SetWin.c プロジェクト: aosm/X11
void
RxpRemoveDestroyCallback(PluginInstance *This)
{
    if (This->plugin_widget != NULL)
	XtRemoveCallback(This->plugin_widget, XtNdestroyCallback, 
			 DestroyCB, (XtPointer) This);
}
コード例 #11
0
ファイル: iupmot_list.c プロジェクト: Vulcanior/IUP
void iupdrvListRemoveItem(Ihandle* ih, int pos)
{
  /* The utility functions use 0=last 1=first */
  if (ih->data->is_dropdown || ih->data->has_editbox)
  {
    if (ih->data->is_dropdown && !ih->data->has_editbox)
    {
      /* must check if removing the current item */
      int curpos;
      XtVaGetValues(ih->handle, XmNselectedPosition, &curpos, NULL);
      if (pos == curpos && iupdrvListGetCount(ih)>1)
      {
        if (curpos > 0) curpos--;
        else curpos++;

        XtRemoveCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih);
        XtVaSetValues(ih->handle, XmNselectedPosition, curpos, NULL);  
        XtAddCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih);
      }
    }
    XmComboBoxDeletePos(ih->handle, pos+1);
  }
  else
    XmListDeletePos(ih->handle, pos+1);

  iupListUpdateOldValue(ih, pos, 1);
}
コード例 #12
0
MotifUI::~MotifUI()
{
   if (_w)
      XtRemoveCallback(_w, XmNdestroyCallback, &MotifUI::WidgetDestroyCB, 
		       (XtPointer) this);
   delete _widgetName;
}
コード例 #13
0
ファイル: menuitem.cpp プロジェクト: chromylei/third_party
void wxMenuItem::DestroyItem(bool full)
{
    if (GetId() == -3)
    {
        ;      // Nothing

    }
    else if (!m_text.empty() && !m_subMenu)
    {
        if (m_buttonWidget)
        {
            if (IsCheckable())
                XtRemoveCallback ((Widget) m_buttonWidget, XmNvalueChangedCallback,
                wxMenuItemCallback, (XtPointer) this);
            else
                XtRemoveCallback ((Widget) m_buttonWidget, XmNactivateCallback,
                wxMenuItemCallback, (XtPointer) this);
            XtRemoveCallback ((Widget) m_buttonWidget, XmNarmCallback,
                wxMenuItemArmCallback, (XtPointer) this);
            XtRemoveCallback ((Widget) m_buttonWidget, XmNdisarmCallback,
                wxMenuItemDisarmCallback, (XtPointer) this);
        }
    }
    else if (IsSeparator())
    {
        ;      // Nothing

    }
    else if (GetSubMenu())
    {
        if (m_buttonWidget)
        {
            XtRemoveCallback ((Widget) m_buttonWidget, XmNcascadingCallback,
                wxMenuItemArmCallback, (XtPointer) this);
        }
        m_subMenu->DestroyMenu(full);
        if (full)
            m_buttonWidget = NULL;
    }

    if (m_buttonWidget && full)
    {
        XtDestroyWidget ((Widget) m_buttonWidget);
        m_buttonWidget = (WXWidget) 0;
    }
}
コード例 #14
0
ファイル: XsComponent.C プロジェクト: beanhome/dev
void XsComponent::_removeDestroyHandler ( )
{
   assert (_base != 0);

// Remove the destroy handler

   XtRemoveCallback (_base, XmNdestroyCallback, _componentDestroyedCallback, (XtPointer)this);
}
コード例 #15
0
void warpCanvasMeshCb(
  Widget		w,
  XtPointer		client_data,
  XtPointer		call_data)
{
  MAPaintImageWinStruct	*winStruct;
  XmToggleButtonCallbackStruct
    *cbs = (XmToggleButtonCallbackStruct *) call_data;
  int		winId = (int) client_data;

  switch( winId ){
  case 0 :
    winStruct = &(warpGlobals.dst);
    if( cbs->set == True ){
      XtAddCallback(winStruct->canvas, XmNexposeCallback,
		    warpDisplayDstMeshCb, (XtPointer) winStruct);
      warpDisplayDstMeshCb(winStruct->canvas,
			   (XtPointer) winStruct, call_data);
    }
    else {
      XtRemoveCallback(winStruct->canvas, XmNexposeCallback,
		       warpDisplayDstMeshCb, (XtPointer) winStruct);
      warpCanvasExposeCb(w, (XtPointer) winStruct, call_data);
    }
    break;
  case 1 :
    winStruct = &(warpGlobals.src);
    if( cbs->set == True ){
      XtAddCallback(winStruct->canvas, XmNexposeCallback,
		    warpDisplaySrcMeshCb, (XtPointer) winStruct);
      warpDisplaySrcMeshCb(winStruct->canvas,
			   (XtPointer) winStruct, call_data);
    }
    else {
      XtRemoveCallback(winStruct->canvas, XmNexposeCallback,
		       warpDisplaySrcMeshCb, (XtPointer) winStruct);
      warpCanvasExposeCb(w, (XtPointer) winStruct, call_data);
    }
    break;
  case 2 :
    winStruct = &(warpGlobals.ovly);
    break;
  }

  return;
}
コード例 #16
0
ファイル: latloncb.c プロジェクト: mjames-upc/garp
/*
 *	Callback for the lat/lon on/off button
 */
void
SetLatLonGridOnCB (Widget w, XtPointer client_data, XtPointer xt_call_data )
{
	
	GuiLatLonGridDialogType		*llg;
	GuiLineAttributesDialogType	*atr;
	Widget				sample;
	BooleanType			state;
	XtCallbackProc			callback;
	XtPointer			clientData;


	atr = GetGuiLineAttributesDialog();
	llg = GetGuiLatLonGridDialog();

	state = XmToggleButtonGetState (w);
	SetLatLonSensitive (state);

/*
 *	Force the sample line to redraw
 */
	sample = GetLatLonGridSampleW (llg);
	RefreshLatLonSampleCB (sample, client_data, xt_call_data );

/*
 *	Special case: check if the user has turned off lat/lon while it
 *	currently controls the line attributes dialog. If so, unmanage
 *	the line attributes dialog.
 */
	if ( (GetLatLonGridSampleW(llg) == GetLineAttributesCurrentSampleW(atr))
		 && ! state ) {

	    XtUnmanageChild ( GetLineAttributesDialogW(atr) );

	    SetLineAttributesCurrentSampleW(atr, NULL);

	    callback = GetLineAttributesCallback(atr);

	    if ( callback != NULL ) {

	        clientData = GetLineAttributesClientData(atr);
	    	XtRemoveCallback( GetLineAttributesApplyW(atr),
	    			XmNactivateCallback,
	    			callback,
	    			(XtPointer) clientData);
	    }
	    
	    SetLineAttributesCallback(atr, NULL);
	    SetLineAttributesClientData(atr, (XtPointer) NULL);
	}

/*
 *	Set the changed state flag
 */
	SetLatLonGridChangeState ( llg, True );

}
コード例 #17
0
ファイル: snd-xfind.c プロジェクト: OS2World/MM-SOUND-Snd
static void clear_find_error(void)
{
  if ((find_error_frame) && (XtIsManaged(find_error_frame)))
    XtUnmanageChild(find_error_frame);
  XtRemoveCallback(edit_find_text, XmNmodifyVerifyCallback, edit_find_modify_callback, NULL);
  /* squeezing out the error label room here moves the text widget, which is irritating since it
   *   means the text we're typing gets lost 
   */
}
コード例 #18
0
ファイル: XsMDICanvas.C プロジェクト: 3v1n0/wxWidgets
XsMDICanvas::~XsMDICanvas ( )
{

/*
   Remove callbacks to prevent calls to destroyed class-part of XsMDICanvas
   while children are being destroyed.
*/

   if (_drawArea)
      XtRemoveCallback (_drawArea, XmNresizeCallback, _canvasResizeCallback, (XtPointer)this);

   if (_clipWin)
      XtRemoveCallback (_clipWin, XmNresizeCallback, _clipResizeCallback, (XtPointer)this);

// Remove all windows

   removeAll ( ); 
}
コード例 #19
0
static void DestroyCB(XtPointer client_data, XtIntervalId *id)
{
    Widget w = Widget(client_data);

    if (w != 0)
    {
	XtRemoveCallback(w, XmNdestroyCallback, CancelTimer, XtPointer(*id));
	XtDestroyWidget(w);
    }
}
コード例 #20
0
static void
destroy(Widget w)
{
    if (Slide_Id(w) != (XtIntervalId)NULL)
    {
        XtRemoveTimeOut(Slide_Id(w));
        Slide_Id(w) = (XtIntervalId)NULL;
    }
    XtRemoveCallback(Slide_Widget(w), XmNdestroyCallback, (XtCallbackProc)targetDestroy, w);
}
コード例 #21
0
ファイル: DrawnB.c プロジェクト: att/uwin
void _XmDrawnB_TraitAddCallback(Widget w,
				XtCallbackProc cb,
				XtPointer cbp,
				Boolean set)
{
    if (set)
	XtAddCallback(w, XmNactivateCallback, cb, cbp);
    else
	XtRemoveCallback(w, XmNactivateCallback, cb, cbp);
}
コード例 #22
0
static Boolean
set_values(Widget old, Widget request, Widget new_w, ArgList args, Cardinal *num_args)
{
    if (Slide_Widget(old) != Slide_Widget(new_w))
    {
        XtRemoveCallback(Slide_Widget(old), XmNdestroyCallback, (XtCallbackProc)targetDestroy, old);
        XtAddCallback(Slide_Widget(new_w), XmNdestroyCallback, (XtCallbackProc)targetDestroy, new_w);
    }
    return(False);
}
コード例 #23
0
void MotifUI::NotifyDelete(BaseUI *obj)
{
   MotifUI *p = (MotifUI *) obj;
   if (p->_w)
    {
      XtRemoveCallback(_w, XmNdestroyCallback, &MotifUI::WidgetDestroyCB, 
		       (XtPointer) this);
      XtDestroyWidget(p->_w);
      p->_w = NULL;
    }
}
コード例 #24
0
ファイル: choice.cpp プロジェクト: EdgarTx/wx
void wxChoice::Delete(unsigned int n)
{
    Widget w = (Widget)m_widgetArray[n];
    XtRemoveCallback(w, XmNactivateCallback, (XtCallbackProc)wxChoiceCallback,
                     (XtPointer)this);
    m_stringList.Erase(m_stringList.Item(n));
    m_widgetArray.RemoveAt(size_t(n));
    m_clientDataDict.Delete(n, HasClientObjectData());

    XtDestroyWidget(w);
    m_noStrings--;
}
コード例 #25
0
ファイル: choice.cpp プロジェクト: 3v1n0/wxWidgets
void wxChoice::DoDeleteOneItem(unsigned int n)
{
    Widget w = (Widget)m_widgetArray[n];
    XtRemoveCallback(w, XmNactivateCallback, (XtCallbackProc)wxChoiceCallback,
                     (XtPointer)this);

    m_stringArray.RemoveAt(size_t(n));
    m_widgetArray.RemoveAt(size_t(n));
    wxChoiceBase::DoDeleteOneItem(n);

    XtDestroyWidget(w);
}
コード例 #26
0
static void 
ChangeCB(
	 Widget w, 
	 XtCallbackProc activCB,
	 XtPointer closure,
	 Boolean setunset)
{
  if (setunset)
    XtAddCallback (w, XmNactivateCallback, activCB, closure);
  else
    XtRemoveCallback (w, XmNactivateCallback, activCB, closure);
}
コード例 #27
0
ファイル: iupmot_dialog.c プロジェクト: svn2github/iup-iup
static void motDialogUnMapMethod(Ihandle* ih)
{
  Widget dialog_manager;
  if (ih->data->menu) 
  {
    ih->data->menu->handle = NULL; /* the dialog will destroy the native menu */
    IupDestroy(ih->data->menu);  
  }

  dialog_manager = XtNameToWidget(ih->handle, "*dialog_manager");
  XtVaSetValues(dialog_manager, XmNuserData, NULL, NULL);

  XtRemoveEventHandler(ih->handle, FocusChangeMask, False, (XtEventHandler)iupmotFocusChangeEvent, (XtPointer)ih);
  XtRemoveEventHandler(ih->handle, KeyPressMask, False, (XtEventHandler)iupmotKeyPressEvent, (XtPointer)ih);
  XtRemoveEventHandler(ih->handle, StructureNotifyMask, False, (XtEventHandler)motDialogCBStructureNotifyEvent, (XtPointer)ih);
  XtRemoveCallback(ih->handle, XmNdestroyCallback, (XtCallbackProc)motDialogDestroyCallback, (XtPointer)ih);

  XtRemoveEventHandler(dialog_manager, KeyPressMask, False, (XtEventHandler)iupmotKeyPressEvent, (XtPointer)ih);
  XtRemoveCallback(dialog_manager, XmNhelpCallback, (XtCallbackProc)iupmotHelpCallback, (XtPointer)ih);
  
  iupdrvBaseUnMapMethod(ih);
}
コード例 #28
0
ファイル: DmxPrintSetup.C プロジェクト: juddy/edcde
void
DmxPrintSetup::detachPrintSetupDialog (void)
{
    XtRemoveCallback(
		_dtprint_setup,
		DtNprintCallback,
		DmxPrintSetup::printCB,
		(XtPointer) this);
    XtRemoveCallback(
		_dtprint_setup,
		DtNcancelCallback,
		_cancelCB,
		(XtPointer) _cancelClosure);
    XtRemoveCallback(
		_dtprint_setup,
		DtNclosePrintDisplayCallback,
		_closeDisplayCB,
		(XtPointer) _closeDisplayClosure);
    XtRemoveCallback(
		_dtprint_setup,
		DtNsetupCallback,
		_pdmSetupCB,
		(XtPointer) _pdmSetupClosure);

    //
    // Leave the Print Setup Dialog for the next print job.
    //
#ifdef REUSE_PRINT_SETUP_DIALOGS
    if (DmxPrintSetup_default_dtprint_setup != NULL)
    {
	XtDestroyWidget(DmxPrintSetup_default_dtprint_setup);
	DmxPrintSetup_default_dtprint_setup = NULL;
    }
    DmxPrintSetup_default_dtprint_setup = _dtprint_setup;
#else
    XtDestroyWidget(_dtprint_setup);
#endif
}
コード例 #29
0
ファイル: gui.c プロジェクト: jeremysalwen/Ceres4
void GUI_GeneralTextField(Widget w,XtPointer client,XtPointer call){
  struct CSlider *cslider=(struct CSlider *)client;
  char *valstring=XmTextGetString(cslider->textwidget);
  char *freqtext;
  double value=atof(valstring);
  XtFree(valstring);


  if(cslider->islog){
    double ai;
    if(value==0.0f) value=0.000001f;
    ai=((log(value)/log(cslider->maxval))-cslider->logval)*(1/(1-cslider->logval));
    XtVaSetValues(cslider->sliderwidget,
		  XmNvalue,
#ifdef USELESSTIF
		  MAXSLIDERVAL-(int)min(MAXSLIDERVAL,max(0,(ai*MAXSLIDERVAL))),
#else
		  (int)min(MAXSLIDERVAL,max(0,(ai*MAXSLIDERVAL))),
#endif
		  NULL
		  );
  }else{
    XtVaSetValues(cslider->sliderwidget,
		  XmNvalue,
#ifdef USELESSTIF
		  MAXSLIDERVAL-min(MAXSLIDERVAL,(int)(MAXSLIDERVAL*(value-cslider->minval)/(cslider->maxval-cslider->minval))),
#else
		  min(MAXSLIDERVAL,(int)(MAXSLIDERVAL*(value-cslider->minval)/(cslider->maxval-cslider->minval))),
#endif
		  NULL
		  );
  }

  if(cslider->freqtextwidget!=NULL){
    freqtext=GUI_freq2pitch(value);
    XtRemoveCallback(cslider->freqtextwidget,XmNvalueChangedCallback,GUI_GeneralFreqTextField,cslider);
    XmTextSetString(cslider->freqtextwidget,freqtext);
    XtAddCallback(cslider->freqtextwidget,XmNvalueChangedCallback,GUI_GeneralFreqTextField,cslider);
    free(freqtext);
  }

  if(cslider->isdouble){
    GUI_CallCallBackDouble(cslider,value);
  }else{
    GUI_CallCallBackInt(cslider,(int)value);
  }

}
コード例 #30
0
ファイル: multislice.c プロジェクト: yhsesq/yhs
void remove_event_handlers(int sel)
{
   switch (sel)
   {
	case REGION_GROWING :
		XtRemoveEventHandler(view[curfile], XtAllEvents, False,
		    (XtEventHandler) start_growing, NULL);
		break;
	case REGION_CUT  :
		XtRemoveEventHandler(draw_2, XtAllEvents, False,
		    (XtEventHandler) start_tracking, NULL);
    	  	XtRemoveEventHandler(draw_2, XtAllEvents, False,
		    (XtEventHandler) continue_tracking, NULL);
    	  	XtRemoveEventHandler(draw_2, XtAllEvents, False,
		    (XtEventHandler) end_tracking, NULL);
		XtRemoveEventHandler(draw_2, XtAllEvents, False,
		    (XtEventHandler) start_cut, NULL);
		break;
	case TRACKING    :
		XtRemoveEventHandler(draw_1, XtAllEvents, False,
		    (XtEventHandler) start_tracking, NULL);
		XtRemoveEventHandler(draw_1, XtAllEvents, False,
		    (XtEventHandler) continue_tracking, NULL);
		XtRemoveEventHandler(draw_1, XtAllEvents, False,
		    (XtEventHandler) end_tracking, NULL);
		break;
       case RECTANGLES  : 
       case ELLIPSES    :
       case CIRCLES     :
		XtRemoveEventHandler (view[curfile], XtAllEvents, False,
		    (XtEventHandler) start_rubberband, NULL);
   		XtRemoveEventHandler (view[curfile], XtAllEvents, False,
		    (XtEventHandler) continue_rubberband, NULL);
		XtRemoveEventHandler (view[curfile], XtAllEvents, False,
		    (XtEventHandler) end_rubberband, NULL);
		break;
	case ZOOM	:
		XtRemoveEventHandler(view[curfile], XtAllEvents, False,
		    (XtEventHandler) start_zoom, NULL);
		XtRemoveEventHandler(view[curfile], XtAllEvents, False,
		    (XtEventHandler) move_zoom, NULL);
		XtRemoveCallback(view[curfile], XmNexposeCallback,
		    (XtCallbackProc) handle_zoom_expose, (XtPointer) NULL);
		break;
	default		: break;
   }
}