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); } }
/***************************************************************************** * 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; }
/***************************************************************************** * 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; }
/***************************************************************************** * 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--; }
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); }
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(); }