/* --------------------------------------------------------------------- * TerminalNew * Create a terminal window * --------------------------------------------------------------------- */ CUIWINDOW* TerminalNew(CUIWINDOW* parent, const wchar_t* text, int x, int y, int w, int h, int id, int sflags, int cflags) { if (parent) { CUIWINDOW* terminal; int i; int col; int flags = sflags | CWS_TABSTOP | CWS_BORDER; flags &= ~(cflags); terminal = WindowNew(parent, x, y, w, h, flags); terminal->Class = _T("TERMINAL"); WindowSetId (terminal, id); WindowColScheme (terminal, _T("TERMINAL")); WindowSetNcPaintHook (terminal, TerminalNcPaintHook); WindowSetPaintHook (terminal, TerminalPaintHook); WindowSetKeyHook (terminal, TerminalKeyHook); WindowSetSetFocusHook (terminal, TerminalSetFocusHook); WindowSetKillFocusHook(terminal, TerminalKillFocusHook); WindowSetSizeHook (terminal, TerminalSizeHook); WindowSetTimerHook (terminal, TerminalTimerHook); WindowSetVScrollHook (terminal, TerminalVScrollHook); WindowSetDestroyHook (terminal, TerminalDestroyHook); WindowSetLayoutHook (terminal, TerminalLayoutHook); col = (terminal->Color.WndTxtColor << 4) + terminal->Color.WndColor; terminal->InstData = (TERMINALDATA*) malloc(sizeof(TERMINALDATA)); ((TERMINALDATA*)terminal->InstData)->SetFocusHook = NULL; ((TERMINALDATA*)terminal->InstData)->KillFocusHook = NULL; ((TERMINALDATA*)terminal->InstData)->PreKeyHook = NULL; ((TERMINALDATA*)terminal->InstData)->PostKeyHook = NULL; ((TERMINALDATA*)terminal->InstData)->CoProcExitHook = NULL; ((TERMINALDATA*)terminal->InstData)->FirstLine = 0; ((TERMINALDATA*)terminal->InstData)->YCursor = 0; ((TERMINALDATA*)terminal->InstData)->XCursor = 0; ((TERMINALDATA*)terminal->InstData)->InputState = STATE_NORMAL; ((TERMINALDATA*)terminal->InstData)->InputPos = 0; ((TERMINALDATA*)terminal->InstData)->CurAttr = col; ((TERMINALDATA*)terminal->InstData)->HasFocus = FALSE; ((TERMINALDATA*)terminal->InstData)->CoProc = NULL; for(i = 0; i < MAX_TERMLINES; i++) { ((TERMINALDATA*)terminal->InstData)->Lines[i] = (wchar_t*) malloc((MAX_TERMCOLS + 1) * sizeof(wchar_t)); ((TERMINALDATA*)terminal->InstData)->Colors[i] = (BYTE*) malloc((MAX_TERMCOLS + 1) * sizeof(BYTE)); wmemset(((TERMINALDATA*)terminal->InstData)->Lines[i],_T(' '),MAX_TERMCOLS); memset(((TERMINALDATA*)terminal->InstData)->Colors[i], col, MAX_TERMCOLS); } WindowSetText(terminal, text); return terminal; } return NULL; }
/* --------------------------------------------------------------------- * ListboxNew * Create a list box dialog control * --------------------------------------------------------------------- */ CUIWINDOW* ListboxNew(CUIWINDOW* parent, const wchar_t* text, int x, int y, int w, int h, int id, int sflags, int cflags) { if (parent) { CUIWINDOW* listbox; int flags = sflags | CWS_TABSTOP | CWS_BORDER; flags &= ~(cflags); listbox = WindowNew(parent, x, y, w, h, flags); listbox->Class = _T("LISTBOX"); WindowSetId(listbox, id); WindowSetNcPaintHook(listbox, ListboxNcPaintHook); WindowSetPaintHook(listbox, ListboxPaintHook); WindowSetKeyHook(listbox, ListboxKeyHook); WindowSetSetFocusHook(listbox, ListboxSetFocusHook); WindowSetKillFocusHook(listbox, ListboxKillFocusHook); WindowSetMButtonHook(listbox, ListboxMButtonHook); WindowSetVScrollHook(listbox, ListboxVScrollHook); WindowSetSizeHook(listbox, ListboxSizeHook); WindowSetDestroyHook(listbox, ListboxDestroyHook); WindowEnableVScroll(listbox, TRUE); WindowSetLayoutHook(listbox, ListboxLayoutHook); listbox->InstData = (LISTBOXDATA*) malloc(sizeof(LISTBOXDATA)); ((LISTBOXDATA*)listbox->InstData)->SetFocusHook = NULL; ((LISTBOXDATA*)listbox->InstData)->KillFocusHook = NULL; ((LISTBOXDATA*)listbox->InstData)->PreKeyHook = NULL; ((LISTBOXDATA*)listbox->InstData)->PostKeyHook = NULL; ((LISTBOXDATA*)listbox->InstData)->LbChangedHook = NULL; ((LISTBOXDATA*)listbox->InstData)->LbChangingHook = NULL; ((LISTBOXDATA*)listbox->InstData)->LbClickedHook = NULL; ((LISTBOXDATA*)listbox->InstData)->NumItems = 0; ((LISTBOXDATA*)listbox->InstData)->SelIndex = -1; ((LISTBOXDATA*)listbox->InstData)->Sorted = ((flags & LB_SORTED) != 0); ((LISTBOXDATA*)listbox->InstData)->Descending = ((flags & LB_DESCENDING) != 0); ((LISTBOXDATA*)listbox->InstData)->FirstItem = NULL; ((LISTBOXDATA*)listbox->InstData)->LastItem = NULL; ((LISTBOXDATA*)listbox->InstData)->MouseDown = FALSE; WindowSetText(listbox, text); return listbox; } return NULL; }
/* --------------------------------------------------------------------- * ComboboxNew * Create the control * --------------------------------------------------------------------- */ CUIWINDOW* ComboboxNew(CUIWINDOW* parent, int x, int y, int w, int h, int id, int sflags, int cflags) { if (parent) { CUIWINDOW* combobox; int flags = sflags | CWS_TABSTOP; flags &= ~(cflags); combobox = WindowNew(parent, x, y, w, 1, flags); combobox->Class = _T("COMBOBOX"); WindowSetId(combobox, id); WindowSetPaintHook(combobox, ComboboxPaintHook); WindowSetKeyHook(combobox, ComboboxKeyHook); WindowSetDestroyHook(combobox, ComboboxDestroyHook); WindowSetSetFocusHook(combobox, ComboboxSetFocusHook); WindowSetKillFocusHook(combobox, ComboboxKillFocusHook); WindowSetMButtonHook(combobox, ComboboxMButtonHook); combobox->InstData = (COMBOBOXDATA*) malloc(sizeof(COMBOBOXDATA)); ((COMBOBOXDATA*)combobox->InstData)->Height = h; ((COMBOBOXDATA*)combobox->InstData)->SetFocusHook = NULL; ((COMBOBOXDATA*)combobox->InstData)->KillFocusHook = NULL; ((COMBOBOXDATA*)combobox->InstData)->PreKeyHook = NULL; ((COMBOBOXDATA*)combobox->InstData)->PostKeyHook = NULL; ((COMBOBOXDATA*)combobox->InstData)->CbChangedHook = NULL; ((COMBOBOXDATA*)combobox->InstData)->CbChangingHook = NULL; ((COMBOBOXDATA*)combobox->InstData)->NumItems = 0; ((COMBOBOXDATA*)combobox->InstData)->SelIndex = -1; ((COMBOBOXDATA*)combobox->InstData)->CtrlSelIndex = -1; ((COMBOBOXDATA*)combobox->InstData)->Sorted = ((flags & LB_SORTED) != 0); ((COMBOBOXDATA*)combobox->InstData)->Descending = ((flags & LB_DESCENDING) != 0); ((COMBOBOXDATA*)combobox->InstData)->FirstItem = NULL; ((COMBOBOXDATA*)combobox->InstData)->LastItem = NULL; ((COMBOBOXDATA*)combobox->InstData)->MouseDown = FALSE; ((COMBOBOXDATA*)combobox->InstData)->DropdownState = FALSE; ((COMBOBOXDATA*)combobox->InstData)->Ctrl = combobox; return combobox; } return NULL; }