diff options
| -rw-r--r-- | nigui.nimble | 9 | ||||
| -rwxr-xr-x | readme.md | 44 | ||||
| -rwxr-xr-x | src/msgbox.nim (renamed from src/common/msgbox.nim) | 0 | ||||
| -rwxr-xr-x | src/nigui.nim (renamed from src/common/nigui.nim) | 18 | ||||
| -rwxr-xr-x | src/nigui/private/gtk3/gtk3.nim (renamed from src/gtk3/gtk3.nim) | 0 | ||||
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim (renamed from src/gtk3/nigui_platform_impl.nim) | 0 | ||||
| -rwxr-xr-x | src/nigui/private/gtk3/platform_types1.nim (renamed from src/gtk3/nigui_platform_types1.nim) | 0 | ||||
| -rwxr-xr-x | src/nigui/private/gtk3/platform_types2.nim (renamed from src/gtk3/nigui_platform_types2.nim) | 0 | ||||
| -rwxr-xr-x | src/nigui/private/windows/platform_impl.nim (renamed from src/windows/nigui_platform_impl.nim) | 0 | ||||
| -rwxr-xr-x | src/nigui/private/windows/platform_types1.nim (renamed from src/windows/nigui_platform_types1.nim) | 0 | ||||
| -rwxr-xr-x | src/nigui/private/windows/platform_types2.nim (renamed from src/windows/nigui_platform_types2.nim) | 0 | ||||
| -rwxr-xr-x | src/nigui/private/windows/windows.nim (renamed from src/windows/windows.nim) | 0 |
12 files changed, 40 insertions, 31 deletions
diff --git a/nigui.nimble b/nigui.nimble new file mode 100644 index 0000000..4d4f666 --- /dev/null +++ b/nigui.nimble @@ -0,0 +1,9 @@ +# Package + +version = "0.1.0" +author = "Simon Krauter" +description = "Cross-platform, desktop GUI toolkit using native widgets." +license = "MIT" + +# Deps +requires "nim >= 0.17.0" @@ -5,9 +5,9 @@ NiGui is a cross-platform, desktop GUI toolkit written in [Nim](https://nim-lang NiGui provides an easy way to develop applications in Nim with a full-featured graphical user interface.
Target platforms:
-* Linux over GTK+ 3
* Windows (Win32 API)
-* macOS (planned)
+* Linux over GTK+ 3
+* macOS over GTK+ 3 (native support planned)
Design goals:
* **Full abstraction**<br>
@@ -44,28 +44,24 @@ Planned: Getting started
---------------
-Recommended steps to use NiGui:
-1. Clone the NiGui repository
-2. Add the follwing two include paths to your Nim configuration:
-
-For Linux/Gtk:
-```
---path:"<path_to_nigui>/src/common"
---path:"<path_to_nigui>/src/gtk3"
-```
-
-For Windows:
-```
---path:"<path_to_nigui>/src/common"
---path:"<path_to_nigui>/src/windows"
-```
-
-To disable the command line window under Windows, add the follwing line to your Nim configuration:
-```
---app:gui
-```
-
-3. Try the included example programs
+
+### How to install NiGui manually
+
+1. Clone the NiGui repository with Git or download the source code
+2. Add this line to your Nim configuration: `--path:"<path_to_nigui>/src"`
+
+### How to install NiGui with Nimble
+
+Run the Nimble install command: `$ nimble install nigui"`
+
+### Additional configuration
+
+* To disable the command line window under Windows, add this line to your Nim configuration: `--app:gui`
+* To compile a Windows binary which uses Gtk, add this line to your Nim configuration: `-d:forceGtk`
+
+### How to verify the installation
+
+Compile and run one of the included example programs.
Show cases
----------
diff --git a/src/common/msgbox.nim b/src/msgbox.nim index 5071dfb..5071dfb 100755 --- a/src/common/msgbox.nim +++ b/src/msgbox.nim diff --git a/src/common/nigui.nim b/src/nigui.nim index c81c02d..4ecdebd 100755 --- a/src/common/nigui.nim +++ b/src/nigui.nim @@ -2,9 +2,11 @@ # This file contains all common code except extra widgets. # All public procedures are declared here. -# Public types are declared here or in the platform-specific file "nigui_platform_types". -# The platform-specific files "nigui_platform_types" and "nigui_platform_procs" will be -# included to this file. +# Platform-specific code will added by "include". + +# Templates for "include": +template useWindows(): bool = defined(windows) and not defined(forceGtk) +template useGtk(): bool = not useWindows() # ======================================================================================== # @@ -258,9 +260,9 @@ type data*: pointer TimerProc* = proc(event: TimerEvent) - # Platform-specific extension of Window and Control: -include nigui_platform_types1 +when useWindows(): include "nigui/private/windows/platform_types1" +when useGtk(): include "nigui/private/gtk3/platform_types1" # ---------------------------------------------------------------------------------------- @@ -290,7 +292,8 @@ type # Platform-specific extension of basic controls: -include nigui_platform_types2 +when useWindows(): include "nigui/private/windows/platform_types2" +when useGtk(): include "nigui/private/gtk3/platform_types2" # ---------------------------------------------------------------------------------------- @@ -2247,4 +2250,5 @@ method `wrap=`(textArea: TextArea, wrap: bool) = # Platform-specific implementation # ---------------------------------------------------------------------------------------- -include nigui_platform_impl +when useWindows(): include "nigui/private/windows/platform_impl" +when useGtk(): include "nigui/private/gtk3/platform_impl" diff --git a/src/gtk3/gtk3.nim b/src/nigui/private/gtk3/gtk3.nim index f2c7eba..f2c7eba 100755 --- a/src/gtk3/gtk3.nim +++ b/src/nigui/private/gtk3/gtk3.nim diff --git a/src/gtk3/nigui_platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index fbb7b45..fbb7b45 100755 --- a/src/gtk3/nigui_platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim diff --git a/src/gtk3/nigui_platform_types1.nim b/src/nigui/private/gtk3/platform_types1.nim index d0178cd..d0178cd 100755 --- a/src/gtk3/nigui_platform_types1.nim +++ b/src/nigui/private/gtk3/platform_types1.nim diff --git a/src/gtk3/nigui_platform_types2.nim b/src/nigui/private/gtk3/platform_types2.nim index c176ffc..c176ffc 100755 --- a/src/gtk3/nigui_platform_types2.nim +++ b/src/nigui/private/gtk3/platform_types2.nim diff --git a/src/windows/nigui_platform_impl.nim b/src/nigui/private/windows/platform_impl.nim index c4c3010..c4c3010 100755 --- a/src/windows/nigui_platform_impl.nim +++ b/src/nigui/private/windows/platform_impl.nim diff --git a/src/windows/nigui_platform_types1.nim b/src/nigui/private/windows/platform_types1.nim index ddf36cf..ddf36cf 100755 --- a/src/windows/nigui_platform_types1.nim +++ b/src/nigui/private/windows/platform_types1.nim diff --git a/src/windows/nigui_platform_types2.nim b/src/nigui/private/windows/platform_types2.nim index bbe7caf..bbe7caf 100755 --- a/src/windows/nigui_platform_types2.nim +++ b/src/nigui/private/windows/platform_types2.nim diff --git a/src/windows/windows.nim b/src/nigui/private/windows/windows.nim index 543985a..543985a 100755 --- a/src/windows/windows.nim +++ b/src/nigui/private/windows/windows.nim |
