Exemple #1
0
/* ---------------------------------------------------------------------
 * 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;
}
Exemple #2
0
/* ---------------------------------------------------------------------
 * 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;
}
Exemple #3
0
/* ---------------------------------------------------------------------
 * 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;
}