summaryrefslogtreecommitdiff
path: root/ldmicro
diff options
context:
space:
mode:
Diffstat (limited to 'ldmicro')
-rw-r--r--ldmicro/ldmicro.cpp3
-rw-r--r--ldmicro/lib/linuxUI/linuxUI.cpp46
-rw-r--r--ldmicro/lib/linuxUI/linuxUI.h22
3 files changed, 45 insertions, 26 deletions
diff --git a/ldmicro/ldmicro.cpp b/ldmicro/ldmicro.cpp
index 8add732..8785753 100644
--- a/ldmicro/ldmicro.cpp
+++ b/ldmicro/ldmicro.cpp
@@ -1082,10 +1082,11 @@ int main(int argc, char** argv)
}
strcpy(CurrentCompileFile, dest);
GenerateIoList(-1);
- CompileProgram(FALSE); /// Requires an open dialog to get file name
+ CompileProgram(FALSE);
exit(0);
}
+ /// ~~~
Instance = hInstance;
MainHeap = HeapCreate(0, 1024*64, 0);
diff --git a/ldmicro/lib/linuxUI/linuxUI.cpp b/ldmicro/lib/linuxUI/linuxUI.cpp
index fea10b5..349408f 100644
--- a/ldmicro/lib/linuxUI/linuxUI.cpp
+++ b/ldmicro/lib/linuxUI/linuxUI.cpp
@@ -30,28 +30,18 @@ COLORREF RGB(int red, int green, int blue)
return col;
}
-void MessageBox(HWID pWindow, char* message, char* title, UINT mFlags)
+int MessageBox(HWID pWindow, char* message, char* title, UINT mFlags)
{
GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
GtkMessageType mType;
- GtkButtonsType mButtons;
-
- if (mFlags & MB_OK == MB_OK)
- mButtons = GTK_BUTTONS_OK;
- else if (mFlags & MB_OKCANCEL == MB_OKCANCEL)
- mButtons = GTK_BUTTONS_OK_CANCEL;
- else if (mFlags & MB_YESNO == MB_YESNO)
- mButtons = GTK_BUTTONS_YES_NO;
- else
- mButtons = GTK_BUTTONS_CLOSE;
- if (mFlags & MB_ICONERROR == MB_ICONERROR)
+ if ((mFlags & MB_ICONERROR) == MB_ICONERROR)
mType = GTK_MESSAGE_ERROR;
- else if (mFlags & MB_ICONQUESTION == MB_ICONQUESTION)
+ else if ((mFlags & MB_ICONQUESTION) == MB_ICONQUESTION)
mType = GTK_MESSAGE_QUESTION;
- else if (mFlags & MB_ICONWARNING == MB_ICONWARNING)
+ else if ((mFlags & MB_ICONWARNING) == MB_ICONWARNING)
mType = GTK_MESSAGE_WARNING;
- else if (mFlags & MB_ICONINFORMATION == MB_ICONINFORMATION)
+ else if ((mFlags & MB_ICONINFORMATION) == MB_ICONINFORMATION)
mType = GTK_MESSAGE_INFO;
else
mType = GTK_MESSAGE_OTHER;
@@ -60,13 +50,35 @@ void MessageBox(HWID pWindow, char* message, char* title, UINT mFlags)
HWID dialog = gtk_message_dialog_new (GTK_WINDOW(pWindow),
flags,
mType,
- mButtons,
+ GTK_BUTTONS_NONE,
message);
+
+ if ((mFlags & MB_OKCANCEL) == MB_OKCANCEL)
+ {
+ gtk_dialog_add_button(GTK_DIALOG(dialog), "_OK", IDOK);
+ gtk_dialog_add_button(GTK_DIALOG(dialog), "_CANCEL", IDCANCEL);
+ }
+ else if ((mFlags & MB_YESNO) == MB_YESNO)
+ {
+ gtk_dialog_add_button(GTK_DIALOG(dialog), "_YES", IDYES);
+ gtk_dialog_add_button(GTK_DIALOG(dialog), "_NO", IDNO);
+ }
+ else if ((mFlags & MB_YESNOCANCEL) == MB_YESNOCANCEL)
+ {
+ gtk_dialog_add_button(GTK_DIALOG(dialog), "_YES", IDYES);
+ gtk_dialog_add_button(GTK_DIALOG(dialog), "_NO", IDNO);
+ gtk_dialog_add_button(GTK_DIALOG(dialog), "_CANCEL", IDCANCEL);
+ }
+ else
+ gtk_dialog_add_button(GTK_DIALOG(dialog), "OK", IDOK);
+
gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG(dialog),
title);
gtk_message_dialog_format_secondary_markup(GTK_MESSAGE_DIALOG(dialog), message);
- gtk_dialog_run (GTK_DIALOG (dialog));
+ int result = gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
+
+ return result;
}
BOOL GetSaveFileName(OPENFILENAME *ofn)
diff --git a/ldmicro/lib/linuxUI/linuxUI.h b/ldmicro/lib/linuxUI/linuxUI.h
index a7c8ce5..8efb6ef 100644
--- a/ldmicro/lib/linuxUI/linuxUI.h
+++ b/ldmicro/lib/linuxUI/linuxUI.h
@@ -14,19 +14,25 @@
/// Flags
/// message box
-#define MB_OK 0x00000000L
-#define MB_OKCANCEL 0x00000001L
+#define MB_OK 0x00000001L
+#define MB_OKCANCEL 0x00000002L
#define MB_YESNO 0x00000004L
+#define MB_YESNOCANCEL 0x00000008L
+
+#define IDOK 1
+#define IDCANCEL 2
+#define IDYES 3
+#define IDNO 4
#define MB_ICONERROR 0x00000010L
#define MB_ICONQUESTION 0x00000020L
-#define MB_ICONWARNING 0x00000030L
-#define MB_ICONINFORMATION 0x00000040L
+#define MB_ICONWARNING 0x00000040L
+#define MB_ICONINFORMATION 0x00000080L
/// open/save file
-#define OFN_PATHMUSTEXIST 0x00000800
-#define OFN_HIDEREADONLY 0x00000004
-#define OFN_OVERWRITEPROMPT 0x00000002
+#define OFN_PATHMUSTEXIST 0x00000100L
+#define OFN_HIDEREADONLY 0x00000200L
+#define OFN_OVERWRITEPROMPT 0x00000400L
/// EnableMenuItem variables
extern const UINT MF_ENABLED;
@@ -53,7 +59,7 @@ typedef struct OpenFileInfoData {
/// functions
BOOL isFocus(HWID);
COLORREF RGB(int, int, int);
-void MessageBox(HWID, char*, char*, UINT);
+int MessageBox(HWID, char*, char*, UINT);
BOOL GetSaveFileName(OPENFILENAME* );
void EnableMenuItem(HMENU, HMENU, UINT);
void CheckMenuItem(HMENU, HMENU, UINT);