fixed: navigation from the keyboard
changed: the esc key selects the entire input text now (in the input edit) added: a test when the program is being starded which checks if the coordinates of the main window actually pointing at the valid area (for example when someone took his configuration file into a new computer and the new computer has a smaller screen) added: a button 'close' on the about dialog changed: dialogs 'add a variable' and 'add a funtion' git-svn-id: svn://ttmath.org/publicrep/ttcalc/trunk@21 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
parent
b51fdddf70
commit
51c8432170
|
@ -1,3 +1,12 @@
|
|||
Version 0.7.3 (2007.03.08):
|
||||
* added: the program shows some kind of errors itself
|
||||
* added: checking whether an user has inserted a correct value of a variable or a function
|
||||
* fixed: navigation from the keyboard
|
||||
* changed: the esc key selects the entire input text now (in the input edit)
|
||||
* added: a test when the program is being starded which checks if the coordinates of the
|
||||
main window actually pointing at the valid area (for example when someone took
|
||||
his configuration file into a new computer and the new computer has a smaller screen)
|
||||
|
||||
Version 0.7.2 (2007.02.28):
|
||||
* added buttons Sgn and Mod
|
||||
* the button 'err' is active when there's actually an error now
|
||||
|
|
5
TODO
5
TODO
|
@ -1,12 +1,7 @@
|
|||
TODO TTCalc
|
||||
===========
|
||||
|
||||
* To add the test when program is being starded which checks if the coordinates of the
|
||||
main window actually pointing
|
||||
at the valid area (for example when someone take his configuration file into a
|
||||
new computer)
|
||||
* To add some physical constants
|
||||
* To make the help
|
||||
* To add navigation from the keyboard (in the two lists - funtions and variables)
|
||||
|
||||
|
||||
|
|
25
src/Makefile
25
src/Makefile
|
@ -1,8 +1,6 @@
|
|||
CC = g++
|
||||
o = resource.o calculation.o functions.o iniparser.o languages.o mainwindow.o parsermanager.o programresources.o tabs.o variables.o winmain.o
|
||||
CFLAGS = -Wall -pedantic -s -O3 -mwindows -mthreads -I../../../ttmath
|
||||
|
||||
|
||||
CFLAGS = -Wall -pedantic -s -O2 -mwindows -mthreads -I../../../ttmath
|
||||
name = ttcalc.exe
|
||||
dir_output = ../../output
|
||||
|
||||
|
@ -24,20 +22,19 @@ ttcalc: $(o)
|
|||
resource.o: resource.rc
|
||||
windres resource.rc resource.o
|
||||
|
||||
calculation.o: calculation.cpp compileconfig.h parsermanager.h resource.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
functions.o: functions.cpp compileconfig.h tabs.h resource.h messages.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
iniparser.o: iniparser.cpp compileconfig.h iniparser.h
|
||||
languages.o: languages.cpp compileconfig.h languages.h
|
||||
mainwindow.o: mainwindow.cpp compileconfig.h winmain.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h resource.h messages.h tabs.h
|
||||
parsermanager.o: parsermanager.cpp compileconfig.h parsermanager.h resource.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
programresources.o: programresources.cpp compileconfig.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
tabs.o: tabs.cpp compileconfig.h tabs.h resource.h messages.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
variables.o: variables.cpp compileconfig.h tabs.h resource.h messages.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
winmain.o: winmain.cpp compileconfig.h winmain.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h resource.h messages.h tabs.h
|
||||
calculation.o: calculation.cpp compileconfig.h parsermanager.h resource.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h tabs.h messages.h
|
||||
functions.o: functions.cpp compileconfig.h tabs.h resource.h messages.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
iniparser.o: iniparser.cpp compileconfig.h iniparser.h
|
||||
languages.o: languages.cpp compileconfig.h languages.h
|
||||
mainwindow.o: mainwindow.cpp compileconfig.h winmain.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h resource.h messages.h tabs.h
|
||||
parsermanager.o: parsermanager.cpp compileconfig.h parsermanager.h resource.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
programresources.o: programresources.cpp compileconfig.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
tabs.o: tabs.cpp compileconfig.h tabs.h resource.h messages.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
variables.o: variables.cpp compileconfig.h tabs.h resource.h messages.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h
|
||||
winmain.o: winmain.cpp compileconfig.h winmain.h programresources.h iniparser.h languages.h threadcontroller.h stopcalculating.h resource.h messages.h tabs.h
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
rm -f *.s
|
||||
rm -f $(dir_output)/$(name)
|
||||
rm -f $(name_cons)
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
*/
|
||||
#define TTCALC_MAJOR_VER 0
|
||||
#define TTCALC_MINOR_VER 7
|
||||
#define TTCALC_REVISION_VER 2
|
||||
#define TTCALC_REVISION_VER 3
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ int i;
|
|||
}
|
||||
else
|
||||
{
|
||||
EnableWindow(GetDlgItem(hWnd,IDC_EDIT_FUNCTION_NAME), false);
|
||||
SendDlgItemMessage(hWnd, IDC_EDIT_FUNCTION_NAME, EM_SETREADONLY, 1, 0);
|
||||
SetFocus(GetDlgItem(hWnd,IDC_EDIT_FUNCTION_VALUE));
|
||||
}
|
||||
|
||||
|
@ -204,12 +204,13 @@ const char * message;
|
|||
}
|
||||
|
||||
|
||||
BOOL WmTabCommand_AddFunction(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
BOOL WmTabCommand_AddFunction(HWND, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
caption = GetPrgRes()->GetLanguages()->GuiMessage(Languages::dialog_box_add_function_caption);
|
||||
name = "";
|
||||
value = "";
|
||||
adding = true;
|
||||
HWND hWnd = GetPrgRes()->GetTabWindow(TabWindowFunctions::tab_functions);
|
||||
caption = GetPrgRes()->GetLanguages()->GuiMessage(Languages::dialog_box_add_function_caption);
|
||||
name = "";
|
||||
value = "";
|
||||
adding = true;
|
||||
parameters = 1;
|
||||
|
||||
if( DialogBox(GetPrgRes()->GetInstance(), MAKEINTRESOURCE(IDD_DIALOG_ADD_FUNCTION), hWnd, DialogProcFunction) )
|
||||
|
@ -236,8 +237,9 @@ return true;
|
|||
(we're also using this method directly without using the main loop of messages)
|
||||
(we don't define the 'lParam' parameter there)
|
||||
*/
|
||||
BOOL WmTabCommand_EditFunction(HWND hWnd, UINT message, WPARAM wParam, LPARAM)
|
||||
BOOL WmTabCommand_EditFunction(HWND, UINT message, WPARAM wParam, LPARAM)
|
||||
{
|
||||
HWND hWnd = GetPrgRes()->GetTabWindow(TabWindowFunctions::tab_functions);
|
||||
HWND list = GetDlgItem(hWnd, IDC_FUNCTIONS_LIST);
|
||||
|
||||
if( ListView_GetSelectedCount(list) != 1 )
|
||||
|
@ -273,8 +275,9 @@ return true;
|
|||
}
|
||||
|
||||
|
||||
BOOL WmTabCommand_DeleteFunction(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
BOOL WmTabCommand_DeleteFunction(HWND, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND hWnd = GetPrgRes()->GetTabWindow(TabWindowFunctions::tab_functions);
|
||||
HWND list = GetDlgItem(hWnd, IDC_FUNCTIONS_LIST);
|
||||
int items = ListView_GetSelectedCount(list);
|
||||
|
||||
|
|
|
@ -283,9 +283,10 @@ void Languages::InitGuiMessagesTab()
|
|||
"\r\n"
|
||||
"If you have any questions, advices or interesting ideas about"
|
||||
" this program or if you want to join to this project as"
|
||||
" the developer or programmer just contact with me."
|
||||
" a developer or programmer feel free to contant with the author."
|
||||
);
|
||||
InsertGuiPair(about_box_title, "About");
|
||||
InsertGuiPair(about_box_button_close, "Close");
|
||||
InsertGuiPair(unknown_error, "An unknown error has occurred");
|
||||
|
||||
|
||||
|
@ -389,9 +390,10 @@ void Languages::InitGuiMessagesTab()
|
|||
"\r\n"
|
||||
"Je¿eli masz jakieœ pytania, rady, ciekawe pomys³y dotycz¹ce"
|
||||
" tego programu lub chcia³byœ do³¹czyæ jako projektant/programista"
|
||||
" poprostu skontaktuj siê ze mn¹."
|
||||
" poprostu skontaktuj siê z autorem."
|
||||
);
|
||||
InsertGuiPair(about_box_title, "O programie");
|
||||
InsertGuiPair(about_box_button_close, "Zamknij");
|
||||
InsertGuiPair(unknown_error, "Nieznany kod b³êdu");
|
||||
|
||||
|
||||
|
|
|
@ -122,6 +122,7 @@ public:
|
|||
cant_init_common_controls,
|
||||
about_text,
|
||||
about_box_title,
|
||||
about_box_button_close,
|
||||
display_digit,
|
||||
display_group_scientific,
|
||||
unknown_error
|
||||
|
|
|
@ -45,6 +45,116 @@ namespace MainWindowFunctions
|
|||
{
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
Loop through all the controls and remove the
|
||||
dark border that the previous default push
|
||||
button has.
|
||||
*/
|
||||
void ClearPushButtons(HWND hWnd)
|
||||
{
|
||||
HWND controls = GetWindow(hWnd, GW_CHILD);
|
||||
LRESULT dlg_code;
|
||||
|
||||
while(controls)
|
||||
{
|
||||
dlg_code = SendMessage(controls, WM_GETDLGCODE, 0, 0);
|
||||
|
||||
if(dlg_code & DLGC_DEFPUSHBUTTON)
|
||||
SendMessage(controls, BM_SETSTYLE, (WPARAM)BS_PUSHBUTTON, true);
|
||||
|
||||
controls = GetWindow(controls, GW_HWNDNEXT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
this method checks whether 'button' is a push button and if so
|
||||
sets it as the default push button (with black border)
|
||||
*/
|
||||
void CheckAndSetDefPushButton(HWND button)
|
||||
{
|
||||
LRESULT dlg_code = SendMessage(button, WM_GETDLGCODE, 0, 0);
|
||||
|
||||
if(dlg_code & DLGC_UNDEFPUSHBUTTON)
|
||||
SendMessage(button, BM_SETSTYLE, (WPARAM)BS_DEFPUSHBUTTON, true);
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
we're trying to get the next or previous control which should have
|
||||
the focus now
|
||||
*/
|
||||
HWND GetNextControl(HWND focus, HWND output_edit, HWND tab, WPARAM wParam)
|
||||
{
|
||||
HWND next = 0;
|
||||
bool shift = (GetKeyState(VK_SHIFT) & 0xffff0000) != 0;
|
||||
bool direction_next = true;
|
||||
|
||||
// if an user has pressed 'up' or 'left' or 'tab'+'shift'
|
||||
// that means we're going 'back'
|
||||
if( wParam==VK_UP || wParam==VK_LEFT || (wParam==VK_TAB && shift) )
|
||||
direction_next = false;
|
||||
|
||||
if( focus==output_edit && direction_next )
|
||||
{
|
||||
// if we are on the output edit and the direction is 'forward'
|
||||
// then the next control will be the 'tab'
|
||||
next = tab;
|
||||
}
|
||||
else
|
||||
if( focus == tab )
|
||||
{
|
||||
// if the tab control has the focus and an user has pressed 'left' or 'right'
|
||||
// we allow the system to manipulate the focus
|
||||
if( wParam==VK_LEFT || wParam==VK_RIGHT )
|
||||
return 0;
|
||||
|
||||
if( direction_next )
|
||||
{
|
||||
// we're getting the first control on a specific dialog on the selected tab
|
||||
int tab_sel = TabCtrl_GetCurSel(tab);
|
||||
HWND tab_dialog = GetPrgRes()->GetTabWindow(tab_sel);
|
||||
next = GetNextDlgTabItem(tab_dialog, 0, false);
|
||||
ClearPushButtons(tab_dialog);
|
||||
}
|
||||
else
|
||||
{
|
||||
// if the direction is 'back' we're setting the focus onto the output edit
|
||||
next = output_edit;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// we get here if the focus is not set on 'tab' neither
|
||||
// on 'output_edit' with the direction equals 'forward'
|
||||
|
||||
// if an user has pressed the tab (with or without shift)
|
||||
// or if the control with a focus doesn't want arrows key
|
||||
// and the control isn't a radio button we're using
|
||||
// GetNextDlgTabItem to find the next element
|
||||
LRESULT dlg_code = SendMessage(focus, WM_GETDLGCODE, 0, 0);
|
||||
if( wParam==VK_TAB ||
|
||||
((dlg_code & DLGC_WANTARROWS)==0 && (dlg_code & DLGC_RADIOBUTTON)==0) )
|
||||
{
|
||||
// the control returns from GetNextDlgTabItem will not be perfect
|
||||
// we have to make a small change:
|
||||
// when this method has returned 'output_edit' and when we're
|
||||
// moving back and the focus it not set on 'tab' the focus
|
||||
// should be set into the tab control
|
||||
HWND nexttmp = GetNextDlgTabItem(GetPrgRes()->GetMainWindow(),
|
||||
focus, !direction_next);
|
||||
|
||||
if( !direction_next && focus!=tab && nexttmp==output_edit )
|
||||
next = tab;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return next;
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
this function sets the focus on a specific control
|
||||
(the standard procedure from the operating system doesn't work well because
|
||||
|
@ -53,45 +163,25 @@ namespace MainWindowFunctions
|
|||
remember to set WS_EX_CONTROLPARENT to the tab control and
|
||||
to all dialog boxes on the tab
|
||||
*/
|
||||
void SetNextFocus()
|
||||
bool SetNextFocus(WPARAM wParam)
|
||||
{
|
||||
HWND next = 0;
|
||||
|
||||
HWND main_window = GetPrgRes()->GetMainWindow();
|
||||
HWND focus = GetFocus();
|
||||
HWND output_edit = GetDlgItem(main_window, IDC_OUTPUT_EDIT);
|
||||
HWND tab = GetDlgItem(main_window, IDC_TAB);
|
||||
bool shift = (GetKeyState(VK_SHIFT) & 0xffff0000) != 0;
|
||||
|
||||
|
||||
if( focus==output_edit && !shift )
|
||||
{
|
||||
next = tab;
|
||||
}
|
||||
else
|
||||
if( focus == tab )
|
||||
{
|
||||
if( shift )
|
||||
{
|
||||
next = output_edit;
|
||||
}
|
||||
else
|
||||
{
|
||||
int tab_sel = TabCtrl_GetCurSel(tab);
|
||||
HWND tab_dialog = GetPrgRes()->GetTabWindow(tab_sel);
|
||||
next = GetNextDlgTabItem(tab_dialog, 0, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
next = GetNextDlgTabItem(main_window, focus, shift);
|
||||
|
||||
if( shift && focus!=tab && next==output_edit )
|
||||
next = tab;
|
||||
}
|
||||
next = GetNextControl(focus, output_edit, tab, wParam);
|
||||
|
||||
if( next )
|
||||
{
|
||||
SetFocus(next);
|
||||
CheckAndSetDefPushButton(next);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -646,12 +736,14 @@ return true;
|
|||
|
||||
|
||||
/*!
|
||||
a user has pressed 'ESC' key in the main window
|
||||
we're cleaning the input edit
|
||||
an user has pressed 'ESC' key in the main window
|
||||
we're setting the entire input edit as being selected
|
||||
*/
|
||||
BOOL WmCommand_IDCANCEL(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
SetDlgItemText(hWnd, IDC_INPUT_EDIT, "");
|
||||
HWND iedit = GetDlgItem(hWnd, IDC_INPUT_EDIT);
|
||||
SendMessage(iedit, EM_SETSEL, 0, -1);
|
||||
SetFocus(iedit);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -722,26 +814,21 @@ return true;
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void CreateCommandMessagesTable(Messages & cmessages)
|
||||
{
|
||||
|
||||
|
||||
cmessages.Associate(IDM_ALWAYS_ON_TOP, WmCommand_AlwaysOnTop);
|
||||
cmessages.Associate(IDM_NORMAL_VIEW, WmCommand_NormalView);
|
||||
cmessages.Associate(IDM_COMPACT_VIEW, WmCommand_CompactView);
|
||||
cmessages.Associate(IDM_HELP_ABOUT, WmCommand_HelpAbout);
|
||||
cmessages.Associate(IDM_NEW_WINDOW, WmCommand_NewWindow);
|
||||
cmessages.Associate(IDM_CLOSE_PROGRAM, WmCommand_CloseProgram);
|
||||
|
||||
cmessages.Associate(IDC_INPUT_EDIT, WmCommand_InputEditNotify);
|
||||
|
||||
cmessages.Associate(IDM_EDIT_UNDO, WmCommand_EditUndo);
|
||||
cmessages.Associate(IDM_EDIT_PASTE, WmCommand_EditPaste);
|
||||
cmessages.Associate(IDM_EDIT_COPY_RESULT, WmCommand_EditCopyResult);
|
||||
|
||||
|
||||
cmessages.Associate(IDCANCEL, WmCommand_IDCANCEL);
|
||||
|
||||
cmessages.Associate(IDM_LANGUAGE_ENGLISH, WmCommand_LanguageEnglish);
|
||||
cmessages.Associate(IDM_LANGUAGE_POLISH, WmCommand_LanguagePolish);
|
||||
}
|
||||
|
@ -755,8 +842,10 @@ static Messages command_messages;
|
|||
// initiation
|
||||
CreateCommandMessagesTable(command_messages);
|
||||
|
||||
|
||||
return command_messages.Call(LOWORD(wParam), hWnd, message, wParam, lParam);
|
||||
if( command_messages.IsMessage(LOWORD(wParam)) )
|
||||
return command_messages.Call(LOWORD(wParam), hWnd, message, wParam, lParam);
|
||||
else
|
||||
return TabWindowFunctions::WmTabCommand(hWnd, message, wParam, lParam);
|
||||
}
|
||||
|
||||
|
||||
|
@ -846,13 +935,14 @@ char compiler[30];
|
|||
BOOL CALLBACK AboutProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
char * about_buffer;
|
||||
Languages * lang;
|
||||
|
||||
switch(message)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
SetWindowText(
|
||||
hWnd,
|
||||
GetPrgRes()->GetLanguages()->GuiMessage(Languages::about_box_title) );
|
||||
lang = GetPrgRes()->GetLanguages();
|
||||
SetWindowText(hWnd, lang->GuiMessage(Languages::about_box_title) );
|
||||
SetWindowText(GetDlgItem(hWnd, IDOK), lang->GuiMessage(Languages::about_box_button_close) );
|
||||
|
||||
about_buffer = new char[2000];
|
||||
CreateAboutText(about_buffer);
|
||||
|
|
|
@ -61,7 +61,7 @@ public:
|
|||
}
|
||||
|
||||
|
||||
BOOL Call(UINT key, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
bool Call(UINT key, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
MessageTable::iterator i = message_table.find(key);
|
||||
|
||||
|
@ -71,6 +71,16 @@ public:
|
|||
return i->second(hWnd, message, wParam, lParam);
|
||||
}
|
||||
|
||||
bool IsMessage(UINT key)
|
||||
{
|
||||
MessageTable::iterator i = message_table.find(key);
|
||||
|
||||
if( i == message_table.end() )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Empty() const
|
||||
{
|
||||
|
|
|
@ -545,6 +545,36 @@ std::string application_data;
|
|||
}
|
||||
|
||||
|
||||
void ProgramResources::CheckCoordinates()
|
||||
{
|
||||
if( x_pos < -50 )
|
||||
x_pos = 0;
|
||||
|
||||
if( y_pos < -50 )
|
||||
y_pos = 0;
|
||||
|
||||
if( x_size < 100 )
|
||||
x_size = 100;
|
||||
|
||||
if( y_size < 30 )
|
||||
y_size = 30;
|
||||
|
||||
int cx = GetSystemMetrics(SM_CXSCREEN);
|
||||
int cy = GetSystemMetrics(SM_CYSCREEN);
|
||||
|
||||
if( x_size > cx+10 )
|
||||
x_size = cx;
|
||||
|
||||
if( y_size > cy+10 )
|
||||
y_size = cy;
|
||||
|
||||
if( x_pos > cx-50 )
|
||||
x_pos = cx - x_size;
|
||||
|
||||
if( y_pos > cy-50 )
|
||||
y_pos = cy - y_size;
|
||||
}
|
||||
|
||||
|
||||
IniParser::Error ProgramResources::ReadFromFile()
|
||||
{
|
||||
|
@ -598,10 +628,12 @@ std::string ini_value[20];
|
|||
always_on_top = bool( atoi(ini_value[0].c_str()) );
|
||||
view = atoi(ini_value[1].c_str()) == 0 ? view_normal : view_compact;
|
||||
maximized = bool( atoi(ini_value[2].c_str()) );
|
||||
|
||||
x_pos = atoi( ini_value[3].c_str() );
|
||||
y_pos = atoi( ini_value[4].c_str() );
|
||||
x_size = atoi( ini_value[5].c_str() );
|
||||
y_size = atoi( ini_value[12].c_str() );
|
||||
CheckCoordinates();
|
||||
|
||||
SetPrecision( atoi(ini_value[6].c_str()) );
|
||||
SetBaseInput( atoi(ini_value[7].c_str()) );
|
||||
|
|
|
@ -279,6 +279,7 @@ private:
|
|||
const char * SkipWhiteCharacters(const char * string);
|
||||
bool IsDecDigit(int c);
|
||||
bool SplitFunction(const std::string & input, const char * * name, int * param);
|
||||
void CheckCoordinates();
|
||||
|
||||
ttmath::Objects variables;
|
||||
ttmath::Objects functions;
|
||||
|
|
|
@ -50,29 +50,31 @@ BEGIN
|
|||
CONTROL "",1010,"SysTabControl32",WS_CHILD |WS_TABSTOP | WS_VISIBLE ,0,39,261,110, WS_EX_CONTROLPARENT
|
||||
END
|
||||
|
||||
102 DIALOG 0, 0, 265, 61
|
||||
STYLE DS_FIXEDSYS |DS_SETFONT |DS_CENTER |WS_POPUP |WS_VISIBLE |WS_THICKFRAME |WS_CAPTION
|
||||
|
||||
102 DIALOG DISCARDABLE 0, 0, 358, 61
|
||||
STYLE DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE |
|
||||
WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Add a new variable"
|
||||
FONT 8, "Ms Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "Ok",1,"BUTTON",BS_DEFPUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,205,10,50,14
|
||||
CONTROL "Cancel",2,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,205,28,50,14
|
||||
CONTROL "",1134,"EDIT",ES_AUTOHSCROLL |ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,38,10,67,14
|
||||
CONTROL "",1135,"EDIT",ES_AUTOHSCROLL |ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,38,28,147,14
|
||||
CONTROL "name:",1136,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,7,12,27,8
|
||||
CONTROL "value:",1137,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,7,30,27,8
|
||||
DEFPUSHBUTTON "Ok",1,291,10,50,14,BS_CENTER | BS_VCENTER
|
||||
PUSHBUTTON "Cancel",2,291,28,50,14,BS_CENTER | BS_VCENTER
|
||||
EDITTEXT 1134,38,10,67,14,ES_AUTOHSCROLL
|
||||
EDITTEXT 1135,38,28,230,14,ES_AUTOHSCROLL
|
||||
LTEXT "name:",1136,7,12,27,8
|
||||
LTEXT "value:",1137,7,30,27,8
|
||||
END
|
||||
|
||||
103 DIALOG DISCARDABLE 0, 0, 273, 73
|
||||
STYLE DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME
|
||||
CAPTION "Add a new function"
|
||||
103 DIALOG DISCARDABLE 0, 0, 370, 74
|
||||
STYLE DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE |
|
||||
WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Ms Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Ok",1,205,10,50,14,BS_CENTER | BS_VCENTER
|
||||
PUSHBUTTON "Cancel",2,205,27,50,14,BS_CENTER | BS_VCENTER
|
||||
DEFPUSHBUTTON "Ok",1,303,10,50,14,BS_CENTER | BS_VCENTER
|
||||
PUSHBUTTON "Cancel",2,303,27,50,14,BS_CENTER | BS_VCENTER
|
||||
EDITTEXT 1144,46,10,67,14,ES_AUTOHSCROLL
|
||||
COMBOBOX 1146,46,29,67,130,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
EDITTEXT 1145,46,47,210,14,ES_AUTOHSCROLL
|
||||
EDITTEXT 1145,46,47,308,14,ES_AUTOHSCROLL
|
||||
LTEXT "name:",1147,7,12,31,8
|
||||
LTEXT "value:",1149,7,49,33,8
|
||||
LTEXT "param:",1148,7,30,33,8
|
||||
|
@ -155,7 +157,7 @@ EXSTYLE WS_EX_CONTROLPARENT
|
|||
CAPTION "tab4"
|
||||
FONT 8, "Ms Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "precision 1",1150,"BUTTON",BS_AUTORADIOBUTTON |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,15,4,252,10
|
||||
CONTROL "precision 1",1150,"BUTTON",BS_AUTORADIOBUTTON |BS_LEFT |WS_CHILD |WS_GROUP|WS_TABSTOP |WS_VISIBLE ,15,4,252,10
|
||||
CONTROL "precision 2",1151,"BUTTON",BS_AUTORADIOBUTTON |BS_LEFT |WS_CHILD | WS_VISIBLE ,15,33,252,10
|
||||
CONTROL "precision 3",1152,"BUTTON",BS_AUTORADIOBUTTON |BS_LEFT |WS_CHILD | WS_VISIBLE ,15,62,252,10
|
||||
CONTROL "info 1",1153,"STATIC",SS_LEFT |WS_CHILD |WS_VISIBLE ,28,17,245,8
|
||||
|
@ -169,29 +171,30 @@ EXSTYLE WS_EX_CONTROLPARENT
|
|||
CAPTION "tab5"
|
||||
FONT 8, "Ms Shell Dlg"
|
||||
BEGIN
|
||||
COMBOBOX 1156,58,5,63,200,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
COMBOBOX 1156,58,5,63,200,CBS_DROPDOWNLIST | WS_TABSTOP | WS_GROUP
|
||||
COMBOBOX 1157,58,19,63,200,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
LTEXT "Input",1162,11,7,27,8
|
||||
LTEXT "Output",1163,11,22,29,8
|
||||
LTEXT "Rounding",1164,11,36,43,8
|
||||
COMBOBOX 1159,58,33,121,200,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
CONTROL "Always",1160,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,19,65,44,10
|
||||
CONTROL "Always",1160,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,19,65,44,10
|
||||
CONTROL "When exp greater than:",1161,"Button", BS_AUTORADIOBUTTON | BS_LEFT ,77,65,112,10
|
||||
EDITTEXT 1166,194,63,29,14,WS_TABSTOP | ES_NUMBER
|
||||
EDITTEXT 1166,194,63,29,14,WS_GROUP | WS_TABSTOP | ES_NUMBER
|
||||
CONTROL "",1165,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS ,213,37,11,14
|
||||
GROUPBOX "Print scientific value",1168,11,51,240,31
|
||||
LTEXT "Digit",1167,227,65,20,8
|
||||
END
|
||||
|
||||
|
||||
200 DIALOG 0, 0, 349, 202
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
200 DIALOG DISCARDABLE 0, 0, 349, 202
|
||||
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CAPTION "About"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
CONTROL 1201,0,"Static",SS_BITMAP,3,3,101,197
|
||||
EDITTEXT 1200,112,3,231,197,ES_MULTILINE | ES_READONLY | NOT
|
||||
CONTROL 1201,0,"Static",SS_BITMAP,3,3,101,197
|
||||
EDITTEXT 1200,112,3,231,158,ES_MULTILINE | ES_READONLY | NOT
|
||||
WS_BORDER | NOT WS_TABSTOP
|
||||
DEFPUSHBUTTON "Close",IDOK,175,172,86,14
|
||||
END
|
||||
|
||||
1201 BITMAP "..\\res\\abacus_01.bmp"
|
||||
|
|
138
src/tabs.cpp
138
src/tabs.cpp
|
@ -315,16 +315,21 @@ return true;
|
|||
|
||||
BOOL WmTabCommand_Ok(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
int tab = TabCtrl_GetCurSel(GetParent(hWnd));
|
||||
HWND main = GetPrgRes()->GetMainWindow();
|
||||
HWND tab = GetDlgItem(main, IDC_TAB);
|
||||
int sel = TabCtrl_GetCurSel(tab);
|
||||
|
||||
if( tab == tab_variables )
|
||||
|
||||
if( sel == tab_variables )
|
||||
{
|
||||
Variables::WmTabCommand_EditVariable(hWnd, WM_COMMAND, IDC_BUTTON_EDIT_VARIABLE, 0);
|
||||
if( GetFocus() == GetDlgItem(GetPrgRes()->GetTabWindow(tab_variables), IDC_VARIABLES_LIST ) )
|
||||
Variables::WmTabCommand_EditVariable(hWnd, WM_COMMAND, IDC_BUTTON_EDIT_VARIABLE, 0);
|
||||
}
|
||||
else
|
||||
if( tab == tab_functions )
|
||||
if( sel == tab_functions )
|
||||
{
|
||||
Functions::WmTabCommand_EditFunction(hWnd, WM_COMMAND, IDC_BUTTON_EDIT_FUNCTION, 0);
|
||||
if( GetFocus() == GetDlgItem(GetPrgRes()->GetTabWindow(tab_functions), IDC_FUNCTIONS_LIST ) )
|
||||
Functions::WmTabCommand_EditFunction(hWnd, WM_COMMAND, IDC_BUTTON_EDIT_FUNCTION, 0);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -726,26 +731,66 @@ BOOL WmTabInitDialog(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
}
|
||||
|
||||
|
||||
/*!
|
||||
this function enables or disables the 'edit' and 'delete' buttons
|
||||
on the variables' or functions' tab depending on how many variables
|
||||
are selected in the list
|
||||
*/
|
||||
void SetDisablingEditDeleteVariableOrFunctionButtons(int count, HWND add,
|
||||
HWND edit, HWND del, HWND focus)
|
||||
{
|
||||
if( count == 1 )
|
||||
// if there is one selected item we're enabling the edit button
|
||||
EnableWindow(edit, true);
|
||||
else
|
||||
{
|
||||
// if there is not one selected item (or none) we're disabling the edit
|
||||
EnableWindow(edit, false);
|
||||
|
||||
// if the focus is on the edit button we must change it
|
||||
// for example into the add button
|
||||
// (we must change the BS_DEFPUSHBUTTON style as well)
|
||||
if( focus == edit )
|
||||
{
|
||||
SetFocus(add);
|
||||
SendMessage(add, BM_SETSTYLE, (WPARAM)BS_DEFPUSHBUTTON, true);
|
||||
SendMessage(edit, BM_SETSTYLE, (WPARAM)BS_PUSHBUTTON, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if( count != 0 )
|
||||
// if there is one or more items selected we're enabling the del button
|
||||
EnableWindow(del, true);
|
||||
else
|
||||
{
|
||||
// if there are not selected items we're disabling the del
|
||||
EnableWindow(del, false);
|
||||
|
||||
if( focus == del )
|
||||
{
|
||||
SetFocus(add);
|
||||
SendMessage(add, BM_SETSTYLE, (WPARAM)BS_DEFPUSHBUTTON, true);
|
||||
SendMessage(del, BM_SETSTYLE, (WPARAM)BS_PUSHBUTTON, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
this function enables or disables the 'edit' and 'delete' buttons
|
||||
on the variable's tab depending on how many variables are selected in the list
|
||||
*/
|
||||
void SetDisablingEditDeleteVariableButtons(HWND hWnd)
|
||||
{
|
||||
HWND list = GetDlgItem(hWnd,IDC_VARIABLES_LIST);
|
||||
HWND focus = GetFocus();
|
||||
HWND list = GetDlgItem(hWnd, IDC_VARIABLES_LIST);
|
||||
HWND add = GetDlgItem(hWnd, IDC_BUTTON_ADD_VARIABLE);
|
||||
HWND edit = GetDlgItem(hWnd, IDC_BUTTON_EDIT_VARIABLE);
|
||||
HWND del = GetDlgItem(hWnd, IDC_BUTTON_DELETE_VARIABLE);
|
||||
int count = ListView_GetSelectedCount(list);
|
||||
|
||||
int count = ListView_GetSelectedCount(list);
|
||||
|
||||
if( count == 1 )
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_BUTTON_EDIT_VARIABLE), true);
|
||||
else
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_BUTTON_EDIT_VARIABLE), false);
|
||||
|
||||
|
||||
if( count != 0 )
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_BUTTON_DELETE_VARIABLE), true);
|
||||
else
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_BUTTON_DELETE_VARIABLE), false);
|
||||
SetDisablingEditDeleteVariableOrFunctionButtons(count, add, edit, del, focus);
|
||||
}
|
||||
|
||||
|
||||
|
@ -755,44 +800,44 @@ int count = ListView_GetSelectedCount(list);
|
|||
*/
|
||||
void SetDisablingEditDeleteFunctionButtons(HWND hWnd)
|
||||
{
|
||||
HWND list = GetDlgItem(hWnd,IDC_FUNCTIONS_LIST);
|
||||
HWND focus = GetFocus();
|
||||
HWND list = GetDlgItem(hWnd, IDC_FUNCTIONS_LIST);
|
||||
HWND add = GetDlgItem(hWnd, IDC_BUTTON_ADD_FUNCTION);
|
||||
HWND edit = GetDlgItem(hWnd, IDC_BUTTON_EDIT_FUNCTION);
|
||||
HWND del = GetDlgItem(hWnd, IDC_BUTTON_DELETE_FUNCTION);
|
||||
int count = ListView_GetSelectedCount(list);
|
||||
|
||||
int count = ListView_GetSelectedCount(list);
|
||||
|
||||
if( count == 1 )
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_BUTTON_EDIT_FUNCTION), true);
|
||||
else
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_BUTTON_EDIT_FUNCTION), false);
|
||||
|
||||
|
||||
if( count != 0 )
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_BUTTON_DELETE_FUNCTION), true);
|
||||
else
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_BUTTON_DELETE_FUNCTION), false);
|
||||
SetDisablingEditDeleteVariableOrFunctionButtons(count, add, edit, del, focus);
|
||||
}
|
||||
|
||||
|
||||
void FillUpVariableList(HWND list)
|
||||
int FillUpVariableList(HWND list)
|
||||
{
|
||||
// we don't have to block the second thread here
|
||||
// because it can only read from variables' table
|
||||
// (we can read and the second thread can read in the same time as well)
|
||||
ttmath::Objects::CIterator iv = GetPrgRes()->GetVariables()->Begin();
|
||||
|
||||
for( ; iv != GetPrgRes()->GetVariables()->End() ; ++iv )
|
||||
int size;
|
||||
for( size=0 ; iv != GetPrgRes()->GetVariables()->End() ; ++iv, ++size )
|
||||
Variables::AddNewItemToVariableList(list, iv->first, iv->second.value);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
void FillUpFunctionList(HWND list)
|
||||
int FillUpFunctionList(HWND list)
|
||||
{
|
||||
// we don't have to block the second thread here
|
||||
// because it can only read from functions' table
|
||||
// (we can read and the second thread can read in the same time as well)
|
||||
ttmath::Objects::CIterator iv = GetPrgRes()->GetFunctions()->Begin();
|
||||
|
||||
for( ; iv != GetPrgRes()->GetFunctions()->End() ; ++iv )
|
||||
int size;
|
||||
for( size=0 ; iv != GetPrgRes()->GetFunctions()->End() ; ++iv, ++size )
|
||||
Functions::AddNewItemToFunctionList(list, iv->first, iv->second.value, iv->second.param);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
|
@ -814,9 +859,10 @@ LVCOLUMN column;
|
|||
ListView_InsertColumn(list, 1, &column);
|
||||
|
||||
ListView_SetExtendedListViewStyle(list,LVS_EX_FULLROWSELECT);
|
||||
|
||||
SetDisablingEditDeleteVariableButtons(hWnd);
|
||||
FillUpVariableList(list);
|
||||
|
||||
if( FillUpVariableList(list) > 0 )
|
||||
ListView_SetItemState(list, 0, LVIS_SELECTED, LVIS_SELECTED);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -845,7 +891,10 @@ LVCOLUMN column;
|
|||
ListView_SetExtendedListViewStyle(list,LVS_EX_FULLROWSELECT);
|
||||
|
||||
SetDisablingEditDeleteFunctionButtons(hWnd);
|
||||
FillUpFunctionList(list);
|
||||
|
||||
if( FillUpFunctionList(list) > 0 )
|
||||
ListView_SetItemState(list, 0, LVIS_SELECTED, LVIS_SELECTED);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -957,6 +1006,16 @@ return false;
|
|||
}
|
||||
|
||||
|
||||
BOOL WmTabKeyDown(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
MessageBox(hWnd, "trol", "", 0);
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void CreateTabMessagesTable(Messages & messages)
|
||||
{
|
||||
messages.Associate(WM_INITDIALOG, WmTabInitDialog);
|
||||
|
@ -966,6 +1025,7 @@ void CreateTabMessagesTable(Messages & messages)
|
|||
messages.Associate(WM_INIT_TAB_PRECISION, WmInitTabPrecision);
|
||||
messages.Associate(WM_INIT_TAB_DISPLAY, WmInitTabDisplay);
|
||||
messages.Associate(WM_NOTIFY, WmNotify);
|
||||
messages.Associate(WM_KEYDOWN, WmTabKeyDown);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1024,7 +1084,7 @@ RECT r_main, r;
|
|||
sum += ListView_GetColumnWidth(list, i);
|
||||
|
||||
if( sum < list_cx - 30 )
|
||||
ListView_SetColumnWidth(list, last_column, list_cx-sum-10);
|
||||
ListView_SetColumnWidth(list, last_column, list_cx-sum-25);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -73,6 +73,7 @@ extern ttmath::ErrorCode last_code;
|
|||
void SetLanguage(HWND hTab);
|
||||
void SetSizeOfVariablesList();
|
||||
void SetSizeOfFunctionsList();
|
||||
BOOL WmTabCommand(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
namespace Variables
|
||||
{
|
||||
|
|
|
@ -100,7 +100,7 @@ char * pchar;
|
|||
}
|
||||
else
|
||||
{
|
||||
EnableWindow(GetDlgItem(hWnd,IDC_EDIT_VARIABLE_NAME), false);
|
||||
SendDlgItemMessage(hWnd, IDC_EDIT_VARIABLE_NAME, EM_SETREADONLY, 1, 0);
|
||||
SetFocus(GetDlgItem(hWnd,IDC_EDIT_VARIABLE_VALUE));
|
||||
}
|
||||
|
||||
|
@ -204,12 +204,13 @@ const char * message;
|
|||
|
||||
|
||||
|
||||
BOOL WmTabCommand_AddVariable(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
BOOL WmTabCommand_AddVariable(HWND, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
caption = GetPrgRes()->GetLanguages()->GuiMessage(Languages::dialog_box_add_variable_caption);
|
||||
name = "";
|
||||
value = "";
|
||||
adding = true;
|
||||
HWND hWnd = GetPrgRes()->GetTabWindow(TabWindowFunctions::tab_variables);
|
||||
caption = GetPrgRes()->GetLanguages()->GuiMessage(Languages::dialog_box_add_variable_caption);
|
||||
name = "";
|
||||
value = "";
|
||||
adding = true;
|
||||
|
||||
if( DialogBox(GetPrgRes()->GetInstance(), MAKEINTRESOURCE(IDD_DIALOG_ADD_VARIABLE), hWnd, DialogProcVariables) )
|
||||
{
|
||||
|
@ -235,8 +236,9 @@ return true;
|
|||
(we're also using this method directly without using the main loop of messages)
|
||||
(we don't define the 'lParam' parameter there)
|
||||
*/
|
||||
BOOL WmTabCommand_EditVariable(HWND hWnd, UINT message, WPARAM wParam, LPARAM)
|
||||
BOOL WmTabCommand_EditVariable(HWND, UINT message, WPARAM wParam, LPARAM)
|
||||
{
|
||||
HWND hWnd = GetPrgRes()->GetTabWindow(TabWindowFunctions::tab_variables);
|
||||
HWND list = GetDlgItem(hWnd, IDC_VARIABLES_LIST);
|
||||
|
||||
if( ListView_GetSelectedCount(list) != 1 )
|
||||
|
@ -269,8 +271,9 @@ return true;
|
|||
}
|
||||
|
||||
|
||||
BOOL WmTabCommand_DeleteVariable(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
BOOL WmTabCommand_DeleteVariable(HWND, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND hWnd = GetPrgRes()->GetTabWindow(TabWindowFunctions::tab_variables);
|
||||
HWND list = GetDlgItem(hWnd, IDC_VARIABLES_LIST);
|
||||
int items = ListView_GetSelectedCount(list);
|
||||
|
||||
|
|
|
@ -117,12 +117,20 @@ MSG msg;
|
|||
{
|
||||
bool sended = false;
|
||||
|
||||
if( msg.message==WM_KEYDOWN && msg.wParam==VK_TAB )
|
||||
// we give our own special function for navigating from the keyboard
|
||||
// if our function returns false then we use a standard navigation
|
||||
// from the system
|
||||
if( msg.message == WM_KEYDOWN &&
|
||||
( msg.wParam == VK_TAB ||
|
||||
msg.wParam == VK_DOWN || msg.wParam == VK_UP ||
|
||||
msg.wParam == VK_LEFT || msg.wParam == VK_DOWN ) )
|
||||
|
||||
{
|
||||
MainWindowFunctions::SetNextFocus();
|
||||
sended = true;
|
||||
if( MainWindowFunctions::SetNextFocus(msg.wParam) )
|
||||
sended = true;
|
||||
}
|
||||
|
||||
|
||||
// firt we try to send our message to dialogs
|
||||
// (the dialogs on the tab control)
|
||||
if( !sended )
|
||||
|
|
|
@ -63,7 +63,7 @@ void MainMessagesLoop();
|
|||
|
||||
namespace MainWindowFunctions
|
||||
{
|
||||
void SetNextFocus();
|
||||
bool SetNextFocus(WPARAM wParam);
|
||||
void CreateMainMessagesTable(Messages & messages);
|
||||
BOOL CALLBACK AboutProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue