コード例 #1
0
ファイル: dlgedit.cpp プロジェクト: Frankie-666/farmanager
void DlgEdit::DoEditChange()
{
	auto dialog=GetDialog();
	_DIALOG(CleverSysLog CL(L"DlgEdit::DoEditChange()"));
	_DIALOG(SysLog(L"m_Owner=%p, m_Owner->IsInited()=%d, m_Index=%d",dialog,dialog->IsInited(),m_Index));
	if (dialog->IsInited())
	{
		dialog->SendMessage(DN_EDITCHANGE,m_Index,0);
	}
}
コード例 #2
0
ファイル: widget_dialog.c プロジェクト: 12019/mtktest
/*****************************************************************************
 * FUNCTION
 *  HDIa_widgetDialogSetAttr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  dialog          [IN]        
 *  dialogText      [IN]        
 *  timeoutTime     [IN]        
 * RETURNS
 *  
 *****************************************************************************/
int HDIa_widgetDialogSetAttr(MsfWindowHandle dialog, MsfStringHandle dialogText, MSF_UINT32 timeoutTime)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    widget_set_attrib(_DIALOG(dialog), dialog_text, dialogText);

    _DIALOG(dialog)->timeout = timeoutTime;
    return 1;
}
コード例 #3
0
ファイル: widget_dialog.c プロジェクト: 12019/mtktest
/*****************************************************************************
 * FUNCTION
 *  HDIa_widgetDialogAddInput
 * DESCRIPTION
 *  
 * PARAMETERS
 *  dialog          [IN]        
 *  label           [IN]        
 *  inputText       [IN]        
 *  inputMode       [IN]        
 *  maxSize         [IN]        
 * RETURNS
 *  
 *****************************************************************************/
int HDIa_widgetDialogAddInput(
        MsfWindowHandle dialog,
        MsfStringHandle label,
        MsfStringHandle inputText,
        MsfTextType inputMode,
        int maxSize)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    MsfPosition position;
    MsfSize size;

    widget_gadget_input_struct *inp;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (_DIALOG(dialog)->input_sum == 0)
    {
        inp = _GINP(HDIa_widgetTextInputCreate(0, label, inputText, inputMode, maxSize, 1, 0, 0, 0));
        inp->index = _DIALOG(dialog)->input_sum;

        position.x = (short)WIDGET_DEFAULT_DIALOG_X;
        position.y = (short)(WIDGET_DEFAULT_DIALOG_Y + WIDGET_DEFAULT_DIALOG_HEIGHT + 10
                             + (WIDGET_DEFAULT_SINGLE_LINE_INPUT_HEIGHT + 10) * inp->index);
        size.width = (short)WIDGET_DEFAULT_SINGLE_LINE_INPUT_WIDTH;
        size.height = (short)WIDGET_DEFAULT_SINGLE_LINE_INPUT_HEIGHT;
        HDIa_widgetSetPosition((MSF_UINT32) inp, &position, 0);
        HDIa_widgetSetSize((MSF_UINT32) inp, &size);

        _DIALOG(dialog)->dialog_input = (MsfStringHandle)inp;
        _DIALOG(dialog)->input_sum++;

        widget_insert_last_childs(dialog, inp);
        return inp->index;
    }
    return -1;
}
コード例 #4
0
ファイル: widget_dialog.c プロジェクト: 12019/mtktest
/*****************************************************************************
 * FUNCTION
 *  HDIa_widgetDialogRemoveInput
 * DESCRIPTION
 *  
 * PARAMETERS
 *  dialog      [IN]        
 *  index       [IN]        
 * RETURNS
 *  
 *****************************************************************************/
int HDIa_widgetDialogRemoveInput(MsfWindowHandle dialog, int index)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    widget_gadget_input_struct *node;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (index >= _DIALOG(dialog)->input_sum)
    {
        return 0;
    }
    if (_DIALOG(dialog)->input_sum)
    {
        if (_DIALOG(dialog)->dialog_input)
        {
            foreach(dialog, GADGET_INPUT, node,
                {
                    if (node->index > index)
                    {
                        node->index--;
                    }
                    else
                    {
                        if (node->index == index)
                        {
                            widget_remove_childs(dialog, node);
                        }
                    }
                }
            );

            HDIa_widgetRelease(_DIALOG(dialog)->dialog_input);
            _DIALOG(dialog)->dialog_input = (MsfGadgetHandle)NULL;
            _DIALOG(dialog)->input_sum--;
        }
コード例 #5
0
ファイル: vmenu2.cpp プロジェクト: chapgaga/farmanager
intptr_t VMenu2::VMenu2DlgProc(Dialog* Dlg, intptr_t Msg, intptr_t Param1, void* Param2)
{
	_DIALOG(CleverSysLog CL(L"VMenu2::VMenu2DlgProc()"));
	_DIALOG(SysLog(L"hDlg=%p, Msg=%s, Param1=%d (0x%08X), Param2=%d (0x%08X)",Dlg,_DLGMSG_ToName(Msg),Param1,Param1,Param2,Param2));
	switch(Msg)
	{
	case DN_CTLCOLORDIALOG:
		{
			FarColor *color=(FarColor*)Param2;
			*color=colors::PaletteColorToFarColor(COL_MENUBOX);
			return true;
		}

	case DN_CTLCOLORDLGLIST:
		{
			FarDialogItemColors *colors=(FarDialogItemColors*)Param2;

			PaletteColors MenuColors[]=
			{
				COL_MENUBOX,                               // подложка
				COL_MENUBOX,                               // рамка
				COL_MENUTITLE,                             // заголовок - верхний и нижний
				COL_MENUTEXT,                              // Текст пункта
				COL_MENUHIGHLIGHT,                         // HotKey
				COL_MENUBOX,                               // separator
				COL_MENUSELECTEDTEXT,                      // Выбранный
				COL_MENUSELECTEDHIGHLIGHT,                 // Выбранный - HotKey
				COL_MENUSCROLLBAR,                         // ScrollBar
				COL_MENUDISABLEDTEXT,                      // Disabled
				COL_MENUARROWS,                            // Arrow
				COL_MENUARROWSSELECTED,                    // Выбранный - Arrow
				COL_MENUARROWSDISABLED,                    // Arrow Disabled
				COL_MENUGRAYTEXT,                          // "серый"
				COL_MENUSELECTEDGRAYTEXT,                  // выбранный "серый"
			};
			for(size_t i=0; i<colors->ColorsCount && i<ARRAYSIZE(MenuColors); ++i)
				colors->Colors[i]=colors::PaletteColorToFarColor(MenuColors[i]);

			return true;
		}

	case DN_CLOSE:
		if(!ForceClosing && !Param1 && GetItemFlags() & (LIF_GRAYED|LIF_DISABLE))
			return false;
		if(Call(Msg, (void*)(Param1<0 ? Param1 : GetSelectPos())))
			return false;
		break;

	case DN_LISTHOTKEY:
		if (!Call(Msg, Param2))
			Dlg->SendMessage( DM_CLOSE, -1, nullptr);
		break;

	case DN_DRAWDLGITEMDONE: //???
	case DN_DRAWDIALOGDONE:
		if(DefRec.EventType)
		{
			INPUT_RECORD rec=DefRec;
			ClearStruct(DefRec);
			if(!Call(DN_INPUT, &rec))
				Dlg->SendMessage( DM_KEY, 1, &rec);
		}
		break;

	case DN_CONTROLINPUT:
	case DN_INPUT:
		if(!cancel)
		{
			if (Msg==DN_CONTROLINPUT)
			{
				auto ir = static_cast<INPUT_RECORD*>(Param2);
				int key=InputRecordToKey(ir);

				if(ListBox().ProcessFilterKey(key))
					return true;
			}

			if(Call(DN_INPUT, Param2))
				return Msg==DN_CONTROLINPUT;
		}
		break;

	case DN_LISTCHANGE:
	case DN_ENTERIDLE:
		if(!cancel)
		{
			if(Call(Msg, Param2))
				return false;
		}
		break;

	case DN_RESIZECONSOLE:
		if(!cancel)
		{
			INPUT_RECORD ReadRec={WINDOW_BUFFER_SIZE_EVENT};
			ReadRec.Event.WindowBufferSizeEvent.dwSize=*(COORD*)Param2;
			if(Call(DN_INPUT, &ReadRec))
				return false;
			else
				Resize();
		}
		break;

	default:
		if(Global->CloseFARMenu)
			ProcessKey(Manager::Key(KEY_ESC));
		break;
	}
	return Dlg->DefProc(Msg, Param1, Param2);
}
コード例 #6
0
ファイル: dlgedit.cpp プロジェクト: Frankie-666/farmanager
void DlgEdit::EditChange(void* aParam)
{
	_DIALOG(CleverSysLog CL(L"DlgEdit::EditChange()"));
	_DIALOG(SysLog(L"aParam=%p, GetClearFlag=%d",aParam, static_cast<DlgEdit*>(aParam)->GetClearFlag()));
	static_cast<DlgEdit*>(aParam)->DoEditChange();
}