Compare commits
49 Commits
drogonCMS-
...
master
Author | SHA1 | Date | |
---|---|---|---|
014e39e5ef | |||
|
ce58668f22 | ||
f1ac5817f8 | |||
|
8273ba0217 | ||
384a175659 | |||
|
65da95ffa0 | ||
|
b7690af06e | ||
48a7c3fbb3 | |||
|
43c9cbb39b | ||
|
6227ab9bc3 | ||
|
cae339e982 | ||
c3e65babe6 | |||
|
f0c5df763d | ||
0881980d42 | |||
|
2e82e6b5a1 | ||
|
9584e57b90 | ||
ab95a14957 | |||
|
24fe6569d9 | ||
b2cd158c1c | |||
|
6ade0faebb | ||
94361da4bc | |||
|
11deec3ea5 | ||
|
a5c4ebb65b | ||
223c21198b | |||
|
092b56b16f | ||
1614b6332c | |||
|
1f7f6a569c | ||
|
002ffe3b0f | ||
|
04444a75ab | ||
fdb3df1b32 | |||
|
f44cc9b9bf | ||
4ca10f27a0 | |||
0526e75a31 | |||
4e95142715 | |||
d3940036a2 | |||
5fd2fd89e3 | |||
4f8b500ce8 | |||
2385a4e878 | |||
f75efeb0af | |||
b8adcfdc30 | |||
6518f7c9c6 | |||
f7c389e6d5 | |||
31af62a55d | |||
0698556a7e | |||
ee4872a1fa | |||
125a6ebf8e | |||
b75a1f867e | |||
701349a115 | |||
022bcc2af8 |
10
.gitignore
vendored
10
.gitignore
vendored
@ -47,6 +47,10 @@ vendors/drogon/exports/
|
||||
vendors/drogon/trantor/Doxyfile.doc_trantor
|
||||
vendors/drogon/trantor/TrantorConfigVersion.cmake
|
||||
vendors/drogon/trantor/exports/
|
||||
vendors/database/
|
||||
postgresql-prefix/
|
||||
CPM_modules/
|
||||
_deps/
|
||||
|
||||
# https://www.gnu.org/software/libtool/
|
||||
|
||||
@ -68,9 +72,9 @@ m4/lt~obsolete.m4
|
||||
|
||||
/drogon_dashboard
|
||||
/DrogonCMS
|
||||
vendors/local-api-server/local-drogon-api-server
|
||||
vendors/local-api-server/test/local-server_test
|
||||
vendors/simple-reverse-proxy/simple_reverse_proxy
|
||||
vendors/api-server/DrogonCMS_API_Server
|
||||
vendors/api-server/test/local-server_test
|
||||
vendors/simple-reverse-proxy/DrogonCMS_Reverse_Proxy
|
||||
|
||||
# Generated Makefile
|
||||
# (meta build system like autotools,
|
||||
|
@ -27,17 +27,26 @@
|
||||
# and oldest tested versions of CMake. This will ensure
|
||||
# you pick up the best policies.
|
||||
cmake_minimum_required(VERSION 3.1...3.28)
|
||||
file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_SOURCE_DIR} "src/*.c")
|
||||
|
||||
# If you set any CMAKE_ variables, that can go here.
|
||||
# (But usually don't do this, except maybe for C++ standard)
|
||||
set(CMAKE_PROJECT_DESCRIPTION "A GTK Drogon CMS")
|
||||
set(CMAKE_PROJECT_HOMEPAGE_URL "https://github.com/odinzu/drogoncms")
|
||||
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/vendors/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# add CPM Deps. for C
|
||||
# Note: only packages that have a CMakeLists.txt..
|
||||
include(vendors/cmake/CPM_0.38.7.cmake)
|
||||
|
||||
#CPMAddPackage("gh:postgres/postgres#7.1.3")
|
||||
#CPMAddPackage("gh:nlohmann/json@3.10.5")
|
||||
|
||||
# This is your project statement. You should always list languages;
|
||||
# Listing the version is nice here since it sets lots of useful variables
|
||||
# we removed LANGUAGES C from project to allow for automatic compiler/linker checks; we will use C and C++ libraries for this project.
|
||||
@ -46,6 +55,9 @@ project(
|
||||
VERSION 1.0.0
|
||||
)
|
||||
|
||||
# Adding something we can run - Output name matches target name
|
||||
add_executable(DrogonCMS ${SOURCES})
|
||||
|
||||
#===============================================================================
|
||||
# Setting compilation flags for various compilers and build types:
|
||||
#===============================================================================
|
||||
@ -81,6 +93,22 @@ set(WARNING_LEVELS_GCC_DEBUG
|
||||
# Default build type is release
|
||||
# Uncomment this to debug or use "cmake -D CMAKE_BUILD_TYPE=debug .."
|
||||
#===============================================================================
|
||||
# External projects go here i.e. a project that isn't using cmake build
|
||||
#include(ExternalProject)
|
||||
#ExternalProject_Add(PostgreSQL
|
||||
# GIT_REPOSITORY https://github.com/postgres/postgres.git
|
||||
# GIT_TAG REL_16_1
|
||||
# SOURCE_DIR ${CMAKE_SOURCE_DIR}/vendors/database/
|
||||
# CONFIGURE_COMMAND ./configure
|
||||
# CMAKE_ARGS ""
|
||||
# INSTALL_COMMAND ""
|
||||
# BUILD_IN_SOURCE 1
|
||||
# BUILD_COMMAND $(MAKE) MAKELEVEL=0
|
||||
# LOG_CONFIGURE 1
|
||||
# LOG_BUILD 1
|
||||
# LOG_INSTALL 1
|
||||
#)
|
||||
|
||||
# set(CMAKE_BUILD_TYPE debug)
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE STRING
|
||||
@ -88,35 +116,47 @@ if(NOT CMAKE_BUILD_TYPE)
|
||||
FORCE)
|
||||
endif()
|
||||
|
||||
# Find packages go here.
|
||||
# Find PkgConfig.
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
pkg_check_modules(GTK4 REQUIRED gtk4>=4.0)
|
||||
message("GTK4 include dir: ${GTK4_INCLUDE_DIRS}")
|
||||
message("GTK4 libraries: ${GTK4_LIBRARY_DIRS}")
|
||||
message("GTK4 Other CFlags: ${GTK4_CFLAGS_OTHER}")
|
||||
message("GTK4 other Cflags: ${GTK4_CFLAGS_OTHER}")
|
||||
|
||||
pkg_check_modules(ADW REQUIRED libadwaita-1>=1.3.5)
|
||||
message("ADW include dir: ${ADW_INCLUDE_DIRS}")
|
||||
message("ADW libraries: ${ADW_LIBRARY_DIRS}")
|
||||
message("ADW Other CFlags: ${ADW_CFLAGS_OTHER}")
|
||||
message("ADW other Cflags: ${ADW_CFLAGS_OTHER}")
|
||||
|
||||
#pkg_check_modules(SSL REQUIRED openssl>=3.1.2)
|
||||
#message("SSL libraries: ${SSL_LIBRARY_DIRS}")
|
||||
|
||||
#pkg_check_modules(SSL REQUIRED zlib>=1.3)
|
||||
|
||||
# Make use of PostgreSQL if FOUND, else use SQLite3
|
||||
find_package (PostgreSQL)
|
||||
if (PostgreSQL_FOUND)
|
||||
message("POSTGRESQL include dir: ${PostgreSQL_INCLUDE_DIRS}")
|
||||
message("POSTGRESQL libraries: ${PostgreSQL_LIBRARIES}")
|
||||
include_directories(${PostgreSQL_INCLUDE_DIRS} ${PostgreSQL_SERVER_INCLUDE_DIRS})
|
||||
target_link_libraries (${PROJECT_NAME} PUBLIC ${PostgreSQL_LIBRARIES})
|
||||
|
||||
#pkg_check_modules(SQLite3 REQUIRED sqlite3>=3.43.1)
|
||||
elseif (SQLITE3_FOUND)
|
||||
find_package (SQLite3)
|
||||
message("SQLITE3 include dir: ${SQLITE3_INCLUDE_DIRS}")
|
||||
message("SQLITE3 libraries: ${SQLITE3_LIBRARIES}")
|
||||
include_directories(${SQLITE3_INCLUDE_DIRS})
|
||||
target_link_libraries (${PROJECT_NAME} PUBLIC ${SQLITE3_LIBRARIES})
|
||||
endif (PostgreSQL_FOUND)
|
||||
# Setup CMake to use GTK+, tell the compiler where to look for headers
|
||||
# and to the linker where to look for libraries
|
||||
include_directories(${GTK4_INCLUDE_DIRS} ${ADW_INCLUDE_DIRS})
|
||||
link_directories(${GTK4_LIBRARY_DIRS} ${ADW_LIBRARY_DIRS})
|
||||
add_definitions(${GTK4_CFLAGS_OTHER} ${ADW_CFLAGS_OTHER})
|
||||
|
||||
# Adding something we can run - Output name matches target name
|
||||
add_executable(DrogonCMS src/base.c)
|
||||
|
||||
# Include drogon source code locally
|
||||
add_subdirectory(vendors/local-api-server/)
|
||||
# Include vendor source code locally/manually
|
||||
add_subdirectory(vendors/api-server/)
|
||||
add_subdirectory(vendors/simple-reverse-proxy/)
|
||||
|
||||
# This is a "default" library, and will match the *** variable setting.
|
||||
@ -129,16 +169,11 @@ add_subdirectory(vendors/simple-reverse-proxy/)
|
||||
# Make sure you link your targets with this command. It can also link libraries and
|
||||
# even flags, so linking a target that does not exist will not give a configure-time error.
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC ${GTK4_LIBRARIES} ${ADW_LIBRARIES})
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${GTK4_LIBRARIES} ${ADW_LIBRARIES} drogon)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${GTK4_LIBRARIES} ${ADW_LIBRARIES})
|
||||
|
||||
# Target Compile Options
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE ${WARNING_LEVELS_GCC} $<$<CONFIG:DEBUG>:${WARNING_LEVELS_GCC_DEBUG}>)
|
||||
|
||||
# This part is so the Modern CMake book can verify this example builds. For your code,
|
||||
# you'll probably want tests too
|
||||
enable_testing()
|
||||
#add_test(NAME MyExample COMMAND MyExample)
|
||||
|
||||
#===============================================================================
|
||||
# Package generation:
|
||||
#===============================================================================
|
||||
|
89
DEV_README.md
Normal file
89
DEV_README.md
Normal file
@ -0,0 +1,89 @@
|
||||
# DEVELOPER JOURNAL
|
||||
# V1.0.0
|
||||
|
||||
# The Design Flow/Pattern of the GTK4/C Application
|
||||
|
||||
|
||||
# Cambalche Update, Configure & Meson Install Instructions:
|
||||
|
||||
So, instructions that worked for me on Arch Linux if you want to manually build/install Cambalache v0.93.
|
||||
|
||||
|
||||
0. `git clone https://gitlab.gnome.org/jpu/cambalache.git && cd cambalache`
|
||||
1. `meson setup --wipe --prefix=~/.local _build .`
|
||||
2. `ninja -C _build install`
|
||||
|
||||
3. Update `~/.bashrc paths`
|
||||
|
||||
```
|
||||
# Add paths for Cambalache app
|
||||
export PYTHONPATH=~/.local/lib/python3.12/site-packages/
|
||||
export GI_TYPELIB_PATH=~/.local/lib/girepository-1.0/
|
||||
export LD_LIBRARY_PATH=~/.local/lib/
|
||||
```
|
||||
|
||||
4. *Optional* Add `~/.local/bin` to $PATH via `~/.bashrc` profile directly
|
||||
```
|
||||
# Then, export and append .local/bin PATH to PATHS for launching Cambalache application
|
||||
export PATH=/home/username/.local/bin:$PATH
|
||||
EXIT and SAVE the .bashrc file
|
||||
```
|
||||
4a. In the terminal/CLI, refresh .bashrc profile
|
||||
`source ~/.bashrc`
|
||||
|
||||
4b. Launch Cambalache via terminal (CLI)
|
||||
`cambalache`
|
||||
|
||||
Note 1: You also may need to copy libs over from local `./_build/cambalache/private` directory to `/home/username/.local/lib`.
|
||||
|
||||
### The specific files I copied
|
||||
|
||||
* CambalachePrivate-3.0.gir
|
||||
* CambalachePrivate-3.0.typelib
|
||||
* CambalachePrivate-4.0.gir
|
||||
* CambalachePrivate-4.0.typelib
|
||||
* libcambalacheprivate-3.so.p (DIR)
|
||||
* libcambalacheprivate-4.so.p (DIR)
|
||||
|
||||
# Steps to Build *DrogonCMS* from Source Code
|
||||
|
||||
0. Clone the repository `git clone https://git.sharpetronics.com/sharpetronics/DrogonCMS` and `cd DrogonCMS/`
|
||||
1. *optional* checkout correct branch e.g. `git checkout drogonCMS-cmake`
|
||||
2. Run `cmake -D CMAKE_BUILD_TYPE=Release .`
|
||||
3. Then, to build the executable, we do `cmake --build .`
|
||||
4. Run the app with `./DrogonCMS`
|
||||
|
||||
## Developer Requirements
|
||||
|
||||
*Drogon* framework compile/build dependencies.
|
||||
* Drogon >= 1.9.1 https://github.com/drogonframework/drogon/wiki/ENG-02-Installation#System-Preparation-Examples
|
||||
|
||||
## Developer Recommendations
|
||||
|
||||
A GTK4 editor is a recommended tool for this project; all UI's and project files **.cmb** are stored in `./src/ui/`.
|
||||
* Cambalache >= 0.93 https://gitlab.gnome.org/jpu/cambalache
|
||||
|
||||
An optional recommendation is Geany IDE.
|
||||
* Geany IDE https://www.geany.org/
|
||||
|
||||
## IDE build commands via Geany `Build -> Set Build Commands`
|
||||
|
||||
### This is what my build commands look like in *Geany IDE* with **GNU Automake Tools**.
|
||||
|
||||
| Name | Command | Working Directory |
|
||||
| ----------- | ------------------ | -------------------------------------------------------------------- |
|
||||
| Configure | ../configure | /home/username/Desktop/Local-Development/cplusplus/drogon-dash/build |
|
||||
| AutoReconf | autoreconf -vi | /home/username/Desktop/Local-Development/cplusplus/drogon-dash |
|
||||
| Make | make | /home/username/Desktop/Local-Development/cplusplus/drogon-dash/build |
|
||||
| Run | ./drogon_dashboard | /home/username/Desktop/Local-Development/cplusplus/drogon-dash/build |
|
||||
| Make Bins | make dist | /home/username/Desktop/Local-Development/cplusplus/drogon-dash/build |
|
||||
|
||||
### This is what my build commands look like in Geany IDE with **BSD CMake Tools**.
|
||||
|
||||
| Name | Command | Working Directory |
|
||||
| ----------- | ------------------ | -------------------------------------------------------------------- |
|
||||
| Configure | cmake -D CMAKE_BUILD_TYPE=Release | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/ |
|
||||
| Build | cmake --build . | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS |
|
||||
| Run GUI | ./DrogonCMS | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/ |
|
||||
| Run API | ./DrogonCMS-API-Server | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/vendors/api-server/ |
|
||||
| Install | cmake --install | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/ |
|
31
README.md
31
README.md
@ -4,13 +4,16 @@ This is a Drogon Content Management System(CMS).
|
||||
### License
|
||||
* GPL-3.0
|
||||
|
||||
## Features and Strengths
|
||||
## Prominent Features and Strengths
|
||||
- Faster than NginX, WordPress and Strapi
|
||||
- Built on CMake/C/C++/GTK4/Drogon
|
||||
- Built on Freedom Software
|
||||
- Blazing Fast Website Architecture
|
||||
- Lightning Fast Architecture
|
||||
- Headless CMS Ready for Site Generators
|
||||
- Lightweight Security with _serverless_ architecture, plus optional proxy securities and caching.
|
||||
- Lightweight Reverse Proxy Security
|
||||
- Database Ready for SQLite3 & PostgreSQL 15
|
||||
- Custom API Configurations
|
||||
- C Package Manager (CPM)
|
||||
- Excellent Documentation
|
||||
|
||||
## Community Plugins
|
||||
@ -50,7 +53,7 @@ Requests/sec: 115151.94
|
||||
Transfer/sec: 78.74MB
|
||||
```
|
||||
|
||||
### Getting a json token with web sockets and drogon proxy on 2 IO threads.
|
||||
### Getting a JSON token with web sockets and Drogon proxy on 2 IO threads.
|
||||
```
|
||||
wrk -c200 -d5 -t2 ws://localhost:8088/get-token
|
||||
Running 5s test @ ws://localhost:8088/get-token
|
||||
@ -67,20 +70,21 @@ Transfer/sec: 21.24MB
|
||||
|
||||
### Developer Dependency Requirements
|
||||
* GCC (GNU C/C++ Compiler) >= 13.2.1
|
||||
* PostgreSQL >= 15.1(*Priority*) or SQLite3(*Default*) >= 3.43.1 [SEE 3RD PARTY SITE DEPENDENCIES]
|
||||
* CMake >= 3.28
|
||||
* Drogon >= 1.9.1 [SEE REQUIREMENTS]
|
||||
* Drogon >= 1.9.1 [SEE 3RD PARTY SITE DEPENDENCIES]
|
||||
* Pkg-Config >= 1.8.1
|
||||
* Gtk4 >= 4.0
|
||||
* Adwaita >= 1.3.5
|
||||
* OpenSSL >= 3.1.2
|
||||
* *Optional* PostgreSQL Database(*Default*) >= 2.39
|
||||
* *Optional* Cambalache >= 0.14 (Gtk4 Editor) [SEE REQUIREMENTS]
|
||||
* *Optional* Cambalache >= 0.93 (Gtk4 Editor) [SEE 3RD PARTY SITE DEPENDENCIES]
|
||||
* *Optional* Geany IDE >= 1.38
|
||||
* CLI Experience
|
||||
* Git/Github Experience
|
||||
|
||||
*Note: This has been built and tested on Arch Linux*
|
||||
|
||||
### Steps to Build DrogonCMS from Source Code
|
||||
### Steps to Build *DrogonCMS* from Source Code
|
||||
|
||||
0. Clone the repository `git clone https://git.sharpetronics.com/sharpetronics/DrogonCMS` and `cd DrogonCMS/`
|
||||
1. *optional* checkout correct branch e.g. `git checkout drogonCMS-cmake`
|
||||
@ -90,20 +94,20 @@ Transfer/sec: 21.24MB
|
||||
|
||||
### Requirements
|
||||
|
||||
Drogon framework compile/build dependencies.
|
||||
*Drogon* framework compile/build dependencies.
|
||||
* Drogon >= 1.9.1 https://github.com/drogonframework/drogon/wiki/ENG-02-Installation#System-Preparation-Examples
|
||||
|
||||
### Recommendations
|
||||
|
||||
A GTK4 editor is a recommended tool for this project; all UI's and project files **.cmb** are stored in `./src/ui/`.
|
||||
* Cambalache >= 0.14 https://gitlab.gnome.org/jpu/cambalache
|
||||
* Cambalache >= 0.93 https://gitlab.gnome.org/jpu/cambalache
|
||||
|
||||
An optional recommendation is Geany IDE.
|
||||
* Geany IDE https://www.geany.org/
|
||||
|
||||
### IDE build commands via Geany `Build -> Set Build Commands`
|
||||
|
||||
#### This is what my build commands look like in Geany IDE with **GNU Automake Tools**.
|
||||
#### This is what my build commands look like in *Geany IDE* with **GNU Automake Tools**.
|
||||
|
||||
| Name | Command | Working Directory |
|
||||
| ----------- | ------------------ | -------------------------------------------------------------------- |
|
||||
@ -120,7 +124,7 @@ An optional recommendation is Geany IDE.
|
||||
| Configure | cmake -D CMAKE_BUILD_TYPE=Release | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/ |
|
||||
| Build | cmake --build . | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS |
|
||||
| Run GUI | ./DrogonCMS | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/ |
|
||||
| Run API | ./local-drogon-server-api | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/vendors/drogon/local-api-server/ |
|
||||
| Run API | ./DrogonCMS-API-Server | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/vendors/api-server/ |
|
||||
| Install | cmake --install | /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/ |
|
||||
|
||||
## Authors
|
||||
@ -143,6 +147,7 @@ oDinZu WenKi(Charles) https://liberapay.com/oDinZu/
|
||||
* Cambalache https://gitlab.gnome.org/jpu/cambalache
|
||||
* C References https://en.cppreference.com/w/c
|
||||
* CMake Documentation https://cmake.org/cmake/help/book/mastering-cmake/index.html
|
||||
* CPM Make Github https://github.com/cpm-cmake/CPM.cmake#snippets
|
||||
* Drogon Web Server https://github.com/drogonframework/drogon
|
||||
* Geany IDE https://www.geany.org/
|
||||
* Gio Documentation https://docs.gtk.org/gio/index.html
|
||||
@ -150,5 +155,7 @@ oDinZu WenKi(Charles) https://liberapay.com/oDinZu/
|
||||
* GObject Documentation https://docs.gtk.org/gobject/index.html
|
||||
* GTK 4 Demos https://gitlab.gnome.org/GNOME/gtk/-/tree/main/demos
|
||||
* GTK 4 Documentation https://docs.gtk.org/gtk4/
|
||||
* PostgreSQL 15 Documentation https://www.postgresql.org/docs/15/index.html
|
||||
* SQLite3 Documentation https://www.sqlite.org/capi3ref.html
|
||||
|
||||
*Notice: We focus implementation with the C programming language and only add various features of C ++ code.*
|
||||
|
3
cpm-package-lock.cmake
Normal file
3
cpm-package-lock.cmake
Normal file
@ -0,0 +1,3 @@
|
||||
# CPM Package Lock
|
||||
# This file should be committed to version control
|
||||
|
222
src/base.c
222
src/base.c
@ -10,7 +10,6 @@
|
||||
# License: GPL-3.0
|
||||
# Version: 0.0.1
|
||||
|
||||
|
||||
# This is Free Software released under GPL-3.0. Any misuse of this software
|
||||
# will be followed up with GPL enforcement via Software Freedom Law Center:
|
||||
# https://www.softwarefreedom.org/
|
||||
@ -32,80 +31,185 @@
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <glib/gi18n.h>
|
||||
#include <stdio.h>
|
||||
/*#include <drogon/drogon.h>*/
|
||||
|
||||
/*
|
||||
Static Variables
|
||||
*/
|
||||
static GtkWidget *p_input;
|
||||
static GtkWidget *p_input_confirm;
|
||||
static GtkWidget *register_button;
|
||||
|
||||
/*
|
||||
Functions
|
||||
*/
|
||||
|
||||
|
||||
/* Compare password entries for admin registration confirmation */
|
||||
static void
|
||||
update_register_button(GObject *object,
|
||||
GParamSpec *pspec,
|
||||
gpointer data)
|
||||
{
|
||||
const char *text = gtk_editable_get_text(GTK_EDITABLE(p_input));
|
||||
const char *text2 = gtk_editable_get_text(GTK_EDITABLE(p_input_confirm));
|
||||
|
||||
//PLACEHOLDER Thish widget set needs to work with GtkBuilder.
|
||||
//This can be done easily but may need a condiontal statement.
|
||||
//Another issue is to use the gtkbuilder, I would have to duplicate code here or learn how to arrange each iteration in a module or easy to use function.
|
||||
//gtk_widget_set_sensitive (register_button,
|
||||
//text[0] != '\0' && g_str_equal (text, text2));
|
||||
}
|
||||
|
||||
/* Launch the application from activate */
|
||||
static void
|
||||
activate(GtkApplication *app,
|
||||
quit_activate (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *window = user_data;
|
||||
|
||||
gtk_window_destroy (GTK_WINDOW (window));
|
||||
}
|
||||
|
||||
static void
|
||||
about_activate (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *about_dlg;
|
||||
|
||||
about_dlg = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "about"));
|
||||
gtk_window_present (GTK_WINDOW (about_dlg));
|
||||
}
|
||||
|
||||
static void
|
||||
remove_timeout (gpointer data)
|
||||
{
|
||||
guint id = GPOINTER_TO_UINT (data);
|
||||
|
||||
g_source_remove (id);
|
||||
}
|
||||
|
||||
static int
|
||||
pop_message (gpointer data)
|
||||
{
|
||||
GtkWidget *status = data;
|
||||
|
||||
gtk_label_set_label (GTK_LABEL (status), "");
|
||||
g_object_set_data (G_OBJECT (status), "timeout", GUINT_TO_POINTER (0));
|
||||
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
status_message (GtkWidget *status,
|
||||
const char *text)
|
||||
{
|
||||
guint id;
|
||||
|
||||
id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (status), "timeout"));
|
||||
if (id)
|
||||
g_source_remove (id);
|
||||
|
||||
gtk_label_set_text (GTK_LABEL (status), text);
|
||||
|
||||
id = g_timeout_add (5000, pop_message, status);
|
||||
|
||||
g_object_set_data_full (G_OBJECT (status), "timeout", GUINT_TO_POINTER (id), remove_timeout);
|
||||
}
|
||||
|
||||
static void
|
||||
help_activate (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *status;
|
||||
|
||||
status = GTK_WIDGET (g_object_get_data (G_OBJECT (user_data), "status"));
|
||||
status_message (status, "Help not available");
|
||||
}
|
||||
|
||||
static void
|
||||
not_implemented (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *status;
|
||||
char *text;
|
||||
|
||||
text = g_strdup_printf ("Action “%s” not implemented", g_action_get_name (G_ACTION (action)));
|
||||
status = GTK_WIDGET (g_object_get_data (G_OBJECT (user_data), "status"));
|
||||
status_message (status, text);
|
||||
g_free (text);
|
||||
}
|
||||
|
||||
static GActionEntry win_entries[] = {
|
||||
{ "new", not_implemented, NULL, NULL, NULL },
|
||||
{ "open", not_implemented, NULL, NULL, NULL },
|
||||
{ "save", not_implemented, NULL, NULL, NULL },
|
||||
{ "save-as", not_implemented, NULL, NULL, NULL },
|
||||
{ "copy", not_implemented, NULL, NULL, NULL },
|
||||
{ "cut", not_implemented, NULL, NULL, NULL },
|
||||
{ "paste", not_implemented, NULL, NULL, NULL },
|
||||
{ "quit", quit_activate, NULL, NULL, NULL },
|
||||
{ "about", about_activate, NULL, NULL, NULL },
|
||||
{ "help", help_activate, NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
static void
|
||||
activate(GtkApplication *app)
|
||||
{
|
||||
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
GActionGroup *actions;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkWidget *about;
|
||||
GtkWidget *status;
|
||||
GtkEventController *controller;
|
||||
|
||||
/* Construct a GtkBuilder instance */
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
|
||||
/* Loads the UI objects */
|
||||
gtk_builder_add_from_file(builder, "src/ui/admin-register.ui", NULL);
|
||||
|
||||
/* Register the ID's of gtk_object from admin-register.ui */
|
||||
GObject *window = gtk_builder_get_object(builder, "register_window");
|
||||
|
||||
p_input = gtk_builder_get_object(builder, "p_input");
|
||||
GObject *p_input_confirm = gtk_builder_get_object(builder, "p_input_confirm");
|
||||
GObject *register_button = gtk_builder_get_object(builder, "register_button");
|
||||
|
||||
/* Connect the actions of XML UI objects's with Gtk Signals */
|
||||
/* In Gtk_builder, we edit the specific widget; Gtk_builder contains all widgets created from Cambalache UI's */
|
||||
|
||||
/* Connect input text with update_button compariative function */
|
||||
g_signal_connect(p_input, "notify::text", G_CALLBACK(update_register_button), NULL);
|
||||
g_signal_connect(p_input_confirm, "notify::text", G_CALLBACK(update_register_button), NULL);
|
||||
|
||||
/* Sets the app window with *app GtkApplication */
|
||||
window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
|
||||
gtk_window_set_application (GTK_WINDOW (window),app);
|
||||
|
||||
/* Display the Gtk GUI */
|
||||
gtk_widget_set_visible(window, TRUE);
|
||||
|
||||
/*
|
||||
* Adds a weak reference from weak_pointer object to indicate that the
|
||||
* pointer located at weak_pointer_location is only valid during the lifetime of object.
|
||||
* When the object is finalized, weak_pointer will be set to NULL.
|
||||
*/
|
||||
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
|
||||
actions = (GActionGroup*)g_simple_action_group_new ();
|
||||
g_action_map_add_action_entries (G_ACTION_MAP (actions),
|
||||
win_entries, G_N_ELEMENTS (win_entries),
|
||||
window);
|
||||
gtk_widget_insert_action_group (window, "win", actions);
|
||||
|
||||
controller = gtk_shortcut_controller_new ();
|
||||
gtk_shortcut_controller_set_scope (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
GTK_SHORTCUT_SCOPE_GLOBAL);
|
||||
gtk_widget_add_controller (window, controller);
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_n, GDK_CONTROL_MASK),
|
||||
gtk_named_action_new ("win.new")));
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_o, GDK_CONTROL_MASK),
|
||||
gtk_named_action_new ("win.open")));
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_s, GDK_CONTROL_MASK),
|
||||
gtk_named_action_new ("win.save")));
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_s, GDK_CONTROL_MASK|GDK_SHIFT_MASK),
|
||||
gtk_named_action_new ("win.save-as")));
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_q, GDK_CONTROL_MASK),
|
||||
gtk_named_action_new ("win.quit")));
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_c, GDK_CONTROL_MASK),
|
||||
gtk_named_action_new ("win.copy")));
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_x, GDK_CONTROL_MASK),
|
||||
gtk_named_action_new ("win.cut")));
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_v, GDK_CONTROL_MASK),
|
||||
gtk_named_action_new ("win.paste")));
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_F1, 0),
|
||||
gtk_named_action_new ("win.help")));
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (gtk_keyval_trigger_new (GDK_KEY_F7, 0),
|
||||
gtk_named_action_new ("win.about")));
|
||||
|
||||
about = GTK_WIDGET (gtk_builder_get_object (builder, "aboutdialog1"));
|
||||
gtk_window_set_transient_for (GTK_WINDOW (about), GTK_WINDOW (window));
|
||||
gtk_window_set_hide_on_close (GTK_WINDOW (about), TRUE);
|
||||
g_object_set_data_full (G_OBJECT (window), "about",
|
||||
about, (GDestroyNotify)gtk_window_destroy);
|
||||
|
||||
status = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar1"));
|
||||
g_object_set_data (G_OBJECT (window), "status", status);
|
||||
|
||||
/* Dereference and free the computer memory */
|
||||
g_object_unref (builder);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
gtk_widget_set_visible (window, TRUE);
|
||||
else
|
||||
gtk_window_destroy (GTK_WINDOW (window));
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
Main program begins here
|
||||
|
@ -1,63 +0,0 @@
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "drogondashboardapplication.h"
|
||||
#include "drogondashboardwindow.h"
|
||||
|
||||
struct _DrogonDashboardApp
|
||||
{
|
||||
GtkApplication parent;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE(DrogonDashboardApp, drogondashboard_app, GTK_TYPE_APPLICATION);
|
||||
|
||||
static void
|
||||
drogondashboard_app_init (DrogonDashboardApp *app)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
drogondashboard_app_activate (GApplication *app)
|
||||
{
|
||||
DrogonDashboardAppWindow *win;
|
||||
|
||||
win = drogondashboard_app_window_new (DROGONDASHBOARD_APP (app));
|
||||
gtk_window_present (GTK_WINDOW (win));
|
||||
}
|
||||
|
||||
static void
|
||||
drogondashboard_app_open (GApplication *app,
|
||||
GFile **files,
|
||||
int n_files,
|
||||
const char *hint)
|
||||
{
|
||||
GList *windows;
|
||||
DrogonDashboardAppWindow *win;
|
||||
int i;
|
||||
|
||||
windows = gtk_application_get_windows (GTK_APPLICATION (app));
|
||||
if (windows)
|
||||
win = DROGONDASHBOARD_APP_WINDOW (windows->data);
|
||||
else
|
||||
win = drogondashboard_app_window_new (DROGONDASHBOARD_APP (app));
|
||||
|
||||
for (i = 0; i < n_files; i++)
|
||||
drogondashboard_app_window_open (win, files[i]);
|
||||
|
||||
gtk_window_present (GTK_WINDOW (win));
|
||||
}
|
||||
|
||||
static void
|
||||
drogondashboard_app_class_init (DrogonDashboardAppClass *class)
|
||||
{
|
||||
G_APPLICATION_CLASS (class)->activate = drogondashboard_app_activate;
|
||||
G_APPLICATION_CLASS (class)->open = drogondashboard_app_open;
|
||||
}
|
||||
|
||||
DrogonDashboardApp *
|
||||
drogondashboard_app_new (void)
|
||||
{
|
||||
return g_object_new (DROGONDASHBOARD_APP_TYPE,
|
||||
"application-id", "org.gtk.exampleapp",
|
||||
"flags", G_APPLICATION_HANDLES_OPEN,
|
||||
NULL);
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
#ifndef __DROGONDASHBOARDAPP_H
|
||||
#define __DROGONDASHBOARDAPP_H
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
|
||||
#define DROGONDASHBOARD_APP_TYPE (drogondashboard_app_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (DrogonDashboardApp, drogondashboard_app, DROGONDASHBOARD, APP, GtkApplication)
|
||||
|
||||
DrogonDashboardApp *drogondashboard_app_new (void);
|
||||
|
||||
|
||||
#endif /* __DROGONDASHBOARDAPP_H */
|
@ -1,46 +0,0 @@
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "drogondashboardapplication.h"
|
||||
#include "drogondashboardwindow.h"
|
||||
|
||||
struct _DrogonDashboardAppWindow
|
||||
{
|
||||
GtkApplicationWindow parent;
|
||||
|
||||
//GtkWidget *stack;
|
||||
|
||||
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE(DrogonDashboardAppWindow, drogondashboard_app_window, GTK_TYPE_APPLICATION_WINDOW);
|
||||
|
||||
static void
|
||||
drogondashboard_app_window_init (DrogonDashboardAppWindow *win)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *window;
|
||||
|
||||
gtk_widget_init_template (GTK_WIDGET (win));
|
||||
builder = gtk_builder_new_from_file("../src/ui/admin-register.ui");
|
||||
//menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu"));
|
||||
window = GTK_WIDGET(gtk_builder_get_object(builder, "registerWindow"));
|
||||
//gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (win->gears), menu);
|
||||
g_object_unref (builder);
|
||||
}
|
||||
|
||||
static void
|
||||
drogondashboard_app_window_class_init (DrogonDashboardAppWindowClass *class)
|
||||
{
|
||||
}
|
||||
|
||||
DrogonDashboardAppWindow *
|
||||
drogondashboard_app_window_new (DrogonDashboardApp *app)
|
||||
{
|
||||
return g_object_new (DROGONDASHBOARD_APP_WINDOW_TYPE, "application", app, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
drogondashboard_app_window_open (DrogonDashboardAppWindow *win,
|
||||
GFile *file)
|
||||
{
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
#ifndef __DROGONDASHBOARDAPPWIN_H
|
||||
#define __DROGONDASHBOARDAPPWIN_H
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include "drogondashboardapplication.h"
|
||||
|
||||
|
||||
#define DROGONDASHBOARD_APP_WINDOW_TYPE (drogondashboard_app_window_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (DrogonDashboardAppWindow, drogondashboard_app_window, DROGONDASHBOARD, APP_WINDOW, GtkApplicationWindow)
|
||||
|
||||
|
||||
DrogonDashboardAppWindow *drogondashboard_app_window_new (DrogonDashboardApp *app);
|
||||
void drogondashboard_app_window_open (DrogonDashboardAppWindow *win,
|
||||
GFile *file);
|
||||
|
||||
|
||||
#endif /* __DROGONDASHBOARDAPPWIN_H */
|
155
src/ui/DrogonCMS.cmb
Normal file
155
src/ui/DrogonCMS.cmb
Normal file
@ -0,0 +1,155 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd">
|
||||
<cambalache-project version="0.93.0" target_tk="gtk-4.0">
|
||||
<ui>
|
||||
(2,None,"admin-register.ui","admin-register.ui",None,None,None,None,None,None,None)
|
||||
</ui>
|
||||
<object>
|
||||
(2,1,"GtkListStore","liststore1",None,None,None,None,0,None,None),
|
||||
(2,2,"(menu)","menubar",None,None,None,None,1,None,None),
|
||||
(2,3,"(submenu)",None,2,None,None,None,0,None,None),
|
||||
(2,4,"(section)",None,3,None,None,None,0,None,None),
|
||||
(2,5,"(item)",None,4,None,None,None,0,None,None),
|
||||
(2,6,"(item)",None,4,None,None,None,1,None,None),
|
||||
(2,7,"(item)",None,4,None,None,None,2,None,None),
|
||||
(2,8,"(item)",None,4,None,None,None,3,None,None),
|
||||
(2,9,"(section)",None,3,None,None,None,1,None,None),
|
||||
(2,10,"(item)",None,9,None,None,None,0,None,None),
|
||||
(2,11,"(submenu)",None,2,None,None,None,1,None,None),
|
||||
(2,12,"(section)",None,11,None,None,None,0,None,None),
|
||||
(2,13,"(item)",None,12,None,None,None,0,None,None),
|
||||
(2,14,"(item)",None,12,None,None,None,1,None,None),
|
||||
(2,15,"(item)",None,12,None,None,None,2,None,None),
|
||||
(2,16,"(submenu)",None,2,None,None,None,2,None,None),
|
||||
(2,17,"(section)",None,16,None,None,None,0,None,None),
|
||||
(2,18,"(item)",None,17,None,None,None,0,None,None),
|
||||
(2,19,"(item)",None,17,None,None,None,1,None,None),
|
||||
(2,20,"GtkAboutDialog","aboutdialog1",None,None,None,None,2,None,None),
|
||||
(2,21,"GtkWindow","window1",None,None,None,None,3,None,None),
|
||||
(2,22,"GtkBox","vbox1",21,None,None,None,0,None,None),
|
||||
(2,23,"GtkPopoverMenuBar","menubar1",22,None,None,None,0,None,None),
|
||||
(2,24,"GtkBox","toolbar1",22,None,None,None,1,None,None),
|
||||
(2,25,"GtkButton",None,24,None,None,None,0,None,None),
|
||||
(2,26,"GtkButton",None,24,None,None,None,1,None,None),
|
||||
(2,27,"GtkButton",None,24,None,None,None,2,None,None),
|
||||
(2,28,"GtkSeparator",None,24,None,None,None,3,None,None),
|
||||
(2,29,"GtkButton",None,24,None,None,None,4,None,None),
|
||||
(2,30,"GtkButton",None,24,None,None,None,5,None,None),
|
||||
(2,31,"GtkButton",None,24,None,None,None,6,None,None),
|
||||
(2,32,"GtkScrolledWindow","scrolledwindow1",22,None,None,None,2,None,None),
|
||||
(2,33,"GtkTreeView","treeview1",32,None,None,None,0,None,None),
|
||||
(2,34,"GtkTreeViewColumn","column1",33,None,None,None,0,None,None),
|
||||
(2,35,"GtkCellRendererText","renderer1",34,None,None,None,0,None,"<attributes><attribute name=\"text\">0</attribute></attributes>"),
|
||||
(2,36,"GtkTreeViewColumn","column2",33,None,None,None,1,None,None),
|
||||
(2,37,"GtkCellRendererText","renderer2",36,None,None,None,0,None,"<attributes><attribute name=\"text\">1</attribute></attributes>"),
|
||||
(2,38,"GtkTreeViewColumn","column3",33,None,None,None,2,None,None),
|
||||
(2,39,"GtkCellRendererText","renderer3",38,None,None,None,0,None,"<attributes><attribute name=\"text\">2</attribute></attributes>"),
|
||||
(2,40,"GtkLabel","statusbar1",22,None,None,None,3,None,None)
|
||||
</object>
|
||||
<object_property>
|
||||
(2,3,"(submenu)","label","_File",1,None,None,None,None,None,None,None,None),
|
||||
(2,5,"(item)","action","win.new",0,None,None,None,None,None,None,None,None),
|
||||
(2,5,"(item)","label","_New",1,None,None,None,None,None,None,None,None),
|
||||
(2,6,"(item)","action","win.open",0,None,None,None,None,None,None,None,None),
|
||||
(2,6,"(item)","label","_Open",1,None,None,None,None,None,None,None,None),
|
||||
(2,7,"(item)","action","win.save",0,None,None,None,None,None,None,None,None),
|
||||
(2,7,"(item)","label","_Save",1,None,None,None,None,None,None,None,None),
|
||||
(2,8,"(item)","action","win.save-as",0,None,None,None,None,None,None,None,None),
|
||||
(2,8,"(item)","label","Save _As",1,None,None,None,None,None,None,None,None),
|
||||
(2,10,"(item)","action","win.quit",0,None,None,None,None,None,None,None,None),
|
||||
(2,10,"(item)","label","_Quit",1,None,None,None,None,None,None,None,None),
|
||||
(2,11,"(submenu)","label","_Edit",1,None,None,None,None,None,None,None,None),
|
||||
(2,13,"(item)","action","win.copy",0,None,None,None,None,None,None,None,None),
|
||||
(2,13,"(item)","label","_Copy",1,None,None,None,None,None,None,None,None),
|
||||
(2,14,"(item)","action","win.cut",0,None,None,None,None,None,None,None,None),
|
||||
(2,14,"(item)","label","_Cut",1,None,None,None,None,None,None,None,None),
|
||||
(2,15,"(item)","action","win.paste",0,None,None,None,None,None,None,None,None),
|
||||
(2,15,"(item)","label","_Paste",1,None,None,None,None,None,None,None,None),
|
||||
(2,16,"(submenu)","label","_Help",1,None,None,None,None,None,None,None,None),
|
||||
(2,18,"(item)","action","win.help",0,None,None,None,None,None,None,None,None),
|
||||
(2,18,"(item)","label","_Help",1,None,None,None,None,None,None,None,None),
|
||||
(2,19,"(item)","action","win.about",0,None,None,None,None,None,None,None,None),
|
||||
(2,19,"(item)","label","_About",1,None,None,None,None,None,None,None,None),
|
||||
(2,20,"GtkAboutDialog","logo-icon-name","org.gtk.Demo4",1,None,None,None,None,None,None,None,None),
|
||||
(2,20,"GtkAboutDialog","program-name","Builder demo",1,None,None,None,None,None,None,None,None),
|
||||
(2,20,"GtkWindow","modal","True",0,None,None,None,None,None,None,None,None),
|
||||
(2,21,"GtkWindow","default-height","250",0,None,None,None,None,None,None,None,None),
|
||||
(2,21,"GtkWindow","default-width","440",0,None,None,None,None,None,None,None,None),
|
||||
(2,21,"GtkWindow","title","Builder",1,None,None,None,None,None,None,None,None),
|
||||
(2,22,"GtkOrientable","orientation","vertical",0,None,None,None,None,None,None,None,None),
|
||||
(2,23,"CmbAccessibleProperty","cmb-a11y-property-label","Main Menu",0,None,None,None,None,None,None,None,None),
|
||||
(2,23,"GtkPopoverMenuBar","menu-model","2",0,None,None,None,None,None,None,None,None),
|
||||
(2,24,"CmbAccessibleProperty","cmb-a11y-property-label","Toolbar",0,None,None,None,None,None,None,None,None),
|
||||
(2,24,"GtkAccessible","accessible-role","toolbar",0,None,None,None,None,None,None,None,None),
|
||||
(2,24,"GtkWidget","css-classes","toolbar",0,None,None,None,None,None,None,None,None),
|
||||
(2,25,"GtkActionable","action-name","win.new",0,None,None,None,None,None,None,None,None),
|
||||
(2,25,"GtkButton","icon-name","document-new",0,None,None,None,None,None,None,None,None),
|
||||
(2,25,"GtkButton","label","New",1,None,None,None,None,None,None,None,None),
|
||||
(2,25,"GtkWidget","tooltip-text","Create a new file",1,None,None,None,None,None,None,None,None),
|
||||
(2,26,"GtkActionable","action-name","win.open",0,None,None,None,None,None,None,None,None),
|
||||
(2,26,"GtkButton","icon-name","document-open",0,None,None,None,None,None,None,None,None),
|
||||
(2,26,"GtkButton","label","Open",1,None,None,None,None,None,None,None,None),
|
||||
(2,26,"GtkWidget","tooltip-text","Open a file",1,None,None,None,None,None,None,None,None),
|
||||
(2,27,"GtkActionable","action-name","win.save",0,None,None,None,None,None,None,None,None),
|
||||
(2,27,"GtkButton","icon-name","document-save",0,None,None,None,None,None,None,None,None),
|
||||
(2,27,"GtkButton","label","Save",1,None,None,None,None,None,None,None,None),
|
||||
(2,27,"GtkWidget","tooltip-text","Save a file",1,None,None,None,None,None,None,None,None),
|
||||
(2,29,"GtkActionable","action-name","win.copy",0,None,None,None,None,None,None,None,None),
|
||||
(2,29,"GtkButton","icon-name","edit-copy",0,None,None,None,None,None,None,None,None),
|
||||
(2,29,"GtkButton","label","Copy",1,None,None,None,None,None,None,None,None),
|
||||
(2,29,"GtkWidget","tooltip-text","Copy selected object into the clipboard",1,None,None,None,None,None,None,None,None),
|
||||
(2,30,"GtkActionable","action-name","win.cut",0,None,None,None,None,None,None,None,None),
|
||||
(2,30,"GtkButton","icon-name","edit-cut",0,None,None,None,None,None,None,None,None),
|
||||
(2,30,"GtkButton","label","Cut",1,None,None,None,None,None,None,None,None),
|
||||
(2,30,"GtkWidget","tooltip-text","Cut selected object into the clipboard",1,None,None,None,None,None,None,None,None),
|
||||
(2,31,"GtkActionable","action-name","win.paste",0,None,None,None,None,None,None,None,None),
|
||||
(2,31,"GtkButton","icon-name","edit-paste",0,None,None,None,None,None,None,None,None),
|
||||
(2,31,"GtkButton","label","Paste",1,None,None,None,None,None,None,None,None),
|
||||
(2,31,"GtkWidget","tooltip-text","Paste object from the clipboard",1,None,None,None,None,None,None,None,None),
|
||||
(2,32,"GtkScrolledWindow","has-frame","1",0,None,None,None,None,None,None,None,None),
|
||||
(2,32,"GtkWidget","hexpand","1",0,None,None,None,None,None,None,None,None),
|
||||
(2,32,"GtkWidget","vexpand","1",0,None,None,None,None,None,None,None,None),
|
||||
(2,33,"GtkTreeView","model","1",0,None,None,None,None,None,None,None,None),
|
||||
(2,33,"GtkTreeView","tooltip-column","3",0,None,None,None,None,None,None,None,None),
|
||||
(2,34,"GtkTreeViewColumn","title","Name",0,None,None,None,None,None,None,None,None),
|
||||
(2,36,"GtkTreeViewColumn","title","Surname",0,None,None,None,None,None,None,None,None),
|
||||
(2,38,"GtkTreeViewColumn","title","Age",0,None,None,None,None,None,None,None,None),
|
||||
(2,40,"GtkLabel","xalign","0",0,None,None,None,None,None,None,None,None),
|
||||
(2,40,"GtkWidget","margin-bottom","2",0,None,None,None,None,None,None,None,None),
|
||||
(2,40,"GtkWidget","margin-end","2",0,None,None,None,None,None,None,None,None),
|
||||
(2,40,"GtkWidget","margin-start","2",0,None,None,None,None,None,None,None,None),
|
||||
(2,40,"GtkWidget","margin-top","2",0,None,None,None,None,None,None,None,None)
|
||||
</object_property>
|
||||
<object_data>
|
||||
(2,1,"GtkListStore",1,1,None,None,None,None,None,None),
|
||||
(2,1,"GtkListStore",2,2,None,1,None,None,None,None),
|
||||
(2,1,"GtkListStore",2,3,None,1,None,None,None,None),
|
||||
(2,1,"GtkListStore",2,4,None,1,None,None,None,None),
|
||||
(2,1,"GtkListStore",2,5,None,1,None,None,None,None),
|
||||
(2,1,"GtkListStore",3,6,None,None,None,None,None,None),
|
||||
(2,1,"GtkListStore",4,7,None,6,None,None,None,None),
|
||||
(2,1,"GtkListStore",5,8,"John",7,None,None,None,None),
|
||||
(2,1,"GtkListStore",5,9,"Doe",7,None,None,None,None),
|
||||
(2,1,"GtkListStore",5,10,"25",7,None,None,None,None),
|
||||
(2,1,"GtkListStore",5,11,"This is the John Doe row",7,None,None,None,None),
|
||||
(2,1,"GtkListStore",4,12,None,6,None,None,None,None),
|
||||
(2,1,"GtkListStore",5,13,"Mary",12,None,None,None,None),
|
||||
(2,1,"GtkListStore",5,14,"Unknown",12,None,None,None,None),
|
||||
(2,1,"GtkListStore",5,15,"50",12,None,None,None,None),
|
||||
(2,1,"GtkListStore",5,16,"This is the Mary Unknown row",12,None,None,None,None)
|
||||
</object_data>
|
||||
<object_data_arg>
|
||||
(2,1,"GtkListStore",2,2,"type","gchararray"),
|
||||
(2,1,"GtkListStore",2,3,"type","gchararray"),
|
||||
(2,1,"GtkListStore",2,4,"type","gint"),
|
||||
(2,1,"GtkListStore",2,5,"type","gchararray"),
|
||||
(2,1,"GtkListStore",5,8,"id","0"),
|
||||
(2,1,"GtkListStore",5,9,"id","1"),
|
||||
(2,1,"GtkListStore",5,10,"id","2"),
|
||||
(2,1,"GtkListStore",5,11,"id","3"),
|
||||
(2,1,"GtkListStore",5,13,"id","0"),
|
||||
(2,1,"GtkListStore",5,14,"id","1"),
|
||||
(2,1,"GtkListStore",5,15,"id","2"),
|
||||
(2,1,"GtkListStore",5,16,"id","3")
|
||||
</object_data_arg>
|
||||
</cambalache-project>
|
@ -1,179 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Created with Cambalache 0.14.0 -->
|
||||
<!--License: GPL-3.0-->
|
||||
<interface domain="https://sharpetronics.com">
|
||||
<!-- interface-name drogon-dashboard.ui -->
|
||||
<!-- interface-description A secure Drogon dashboard for managing content from a Drogon web server.
|
||||
|
||||
The admin dashboard after login user interface. -->
|
||||
<!-- interface-copyright SharpeTronics, Inc. -->
|
||||
<!-- interface-authors SharpeTronics, Inc.
|
||||
oDinZu WenKi -->
|
||||
<requires lib="gtk" version="4.6"/>
|
||||
<requires lib="libadwaita" version="1.0"/>
|
||||
<object class="GtkWindow" id="adminDash">
|
||||
<property name="default-height">700</property>
|
||||
<property name="default-width">500</property>
|
||||
<property name="maximized">True</property>
|
||||
<property name="title">A Drogon Content Manager</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="halign">start</property>
|
||||
<property name="spacing">3</property>
|
||||
<child>
|
||||
<object class="GtkGrid">
|
||||
<property name="halign">start</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<property name="label">SharpeTronics</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">1</property>
|
||||
<property name="row">0</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<property name="label">A Drogon Dashboard</property>
|
||||
<property name="margin-bottom">3</property>
|
||||
<property name="margin-start">15</property>
|
||||
<property name="margin-top">5</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">1</property>
|
||||
<property name="row-span">2</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<property name="label">GENERAL</property>
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-top">35</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">8</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="child">
|
||||
<object class="AdwButtonContent">
|
||||
<property name="halign">start</property>
|
||||
<property name="icon-name">text-x-generic</property>
|
||||
<property name="label"> Content Manager</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="margin-start">5</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">5</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<property name="label">PLUGINS</property>
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-top">35</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">6</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="child">
|
||||
<object class="AdwButtonContent">
|
||||
<property name="halign">start</property>
|
||||
<property name="icon-name">image-x-generic</property>
|
||||
<property name="label"> Media Library</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="margin-start">5</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">7</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="margin-bottom">15</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">3</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="child">
|
||||
<object class="AdwButtonContent">
|
||||
<property name="halign">start</property>
|
||||
<property name="icon-name">application-x-addon-symbolic</property>
|
||||
<property name="label"> Plugins</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="margin-start">5</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">9</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="child">
|
||||
<object class="AdwButtonContent">
|
||||
<property name="halign">start</property>
|
||||
<property name="icon-name">org.gnome.Settings-default-apps-symbolic</property>
|
||||
<property name="label"> Marketplace</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">10</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="child">
|
||||
<object class="AdwButtonContent">
|
||||
<property name="halign">start</property>
|
||||
<property name="icon-name">applications-system-symbolic</property>
|
||||
<property name="label"> Settings</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">11</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCenterBox"/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
@ -1,213 +1,221 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Created with Cambalache 0.14.0 -->
|
||||
<!--License: GPL-3.0-->
|
||||
<interface domain="https://sharpetronics.com">
|
||||
<!-- interface-description A secure Drogon dashboard for managing content from a Drogon web server.
|
||||
|
||||
The admin user registration user interface. -->
|
||||
<!-- interface-copyright SharpeTronics, Inc. -->
|
||||
<!-- interface-authors SharpeTronics, Inc.
|
||||
oDinZu WenKi -->
|
||||
<requires lib="gtk" version="4.6"/>
|
||||
<requires lib="libadwaita" version="1.0"/>
|
||||
<object class="GtkWindow" id="register_window">
|
||||
<property name="default-height">-1</property>
|
||||
<property name="default-width">-1</property>
|
||||
<property name="title">Admin Registration</property>
|
||||
<!-- Created with Cambalache 0.93.0 -->
|
||||
<interface>
|
||||
<!-- interface-name admin-register.ui -->
|
||||
<object class="GtkListStore" id="liststore1">
|
||||
<columns>
|
||||
<column type="gchararray"/>
|
||||
<column type="gchararray"/>
|
||||
<column type="gint"/>
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">John</col>
|
||||
<col id="1" translatable="yes">Doe</col>
|
||||
<col id="2">25</col>
|
||||
<col id="3" translatable="yes">This is the John Doe row</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Mary</col>
|
||||
<col id="1" translatable="yes">Unknown</col>
|
||||
<col id="2">50</col>
|
||||
<col id="3" translatable="yes">This is the Mary Unknown row</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<menu id="menubar">
|
||||
<submenu>
|
||||
<attribute name="label" translatable="yes">_File</attribute>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_New</attribute>
|
||||
<attribute name="action">win.new</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Open</attribute>
|
||||
<attribute name="action">win.open</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Save</attribute>
|
||||
<attribute name="action">win.save</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Save _As</attribute>
|
||||
<attribute name="action">win.save-as</attribute>
|
||||
</item>
|
||||
</section>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Quit</attribute>
|
||||
<attribute name="action">win.quit</attribute>
|
||||
</item>
|
||||
</section>
|
||||
</submenu>
|
||||
<submenu>
|
||||
<attribute name="label" translatable="yes">_Edit</attribute>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Copy</attribute>
|
||||
<attribute name="action">win.copy</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Cut</attribute>
|
||||
<attribute name="action">win.cut</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Paste</attribute>
|
||||
<attribute name="action">win.paste</attribute>
|
||||
</item>
|
||||
</section>
|
||||
</submenu>
|
||||
<submenu>
|
||||
<attribute name="label" translatable="yes">_Help</attribute>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Help</attribute>
|
||||
<attribute name="action">win.help</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_About</attribute>
|
||||
<attribute name="action">win.about</attribute>
|
||||
</item>
|
||||
</section>
|
||||
</submenu>
|
||||
</menu>
|
||||
<object class="GtkAboutDialog" id="aboutdialog1">
|
||||
<property name="program-name" translatable="yes">Builder demo</property>
|
||||
<property name="logo-icon-name" translatable="yes">org.gtk.Demo4</property>
|
||||
<property name="modal">True</property>
|
||||
</object>
|
||||
<object class="GtkWindow" id="window1">
|
||||
<property name="default-height">250</property>
|
||||
<property name="default-width">440</property>
|
||||
<property name="title" translatable="yes">Builder</property>
|
||||
<child>
|
||||
<object class="GtkCenterBox">
|
||||
<property name="halign">center</property>
|
||||
<property name="width-request">500</property>
|
||||
<child type="center">
|
||||
<object class="GtkGrid">
|
||||
<property name="column-spacing">7</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="row-spacing">5</property>
|
||||
<property name="width-request">450</property>
|
||||
<object class="GtkBox" id="vbox1">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="logo">
|
||||
<property name="accessible-role">img</property>
|
||||
<property name="icon-name">application-x-executable</property>
|
||||
<property name="icon-size">large</property>
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="pixel-size">75</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">0</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
<object class="GtkPopoverMenuBar" id="menubar1">
|
||||
<property name="menu-model">menubar</property>
|
||||
<accessibility>
|
||||
<property name="label">Main Menu</property>
|
||||
</accessibility>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="title_label">
|
||||
<property name="justify">center</property>
|
||||
<property name="label">Welcome</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">1</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
<object class="GtkBox" id="toolbar1">
|
||||
<property name="accessible-role">toolbar</property>
|
||||
<property name="css-classes">toolbar</property>
|
||||
<accessibility>
|
||||
<property name="label">Toolbar</property>
|
||||
</accessibility>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes">New</property>
|
||||
<property name="tooltip-text" translatable="yes">Create a new file</property>
|
||||
<property name="icon-name">document-new</property>
|
||||
<property name="action-name">win.new</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="moto_label">
|
||||
<property name="justify">center</property>
|
||||
<property name="label">A Drogon Application</property>
|
||||
<property name="margin-bottom">15</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">2</property>
|
||||
</layout>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes">Open</property>
|
||||
<property name="tooltip-text" translatable="yes">Open a file</property>
|
||||
<property name="icon-name">document-open</property>
|
||||
<property name="action-name">win.open</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="first_name_label">
|
||||
<property name="accessible-role">label</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label">First Name:</property>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes">Save</property>
|
||||
<property name="tooltip-text" translatable="yes">Save a file</property>
|
||||
<property name="icon-name">document-save</property>
|
||||
<property name="action-name">win.save</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes">Copy</property>
|
||||
<property name="tooltip-text" translatable="yes">Copy selected object into the clipboard</property>
|
||||
<property name="icon-name">edit-copy</property>
|
||||
<property name="action-name">win.copy</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes">Cut</property>
|
||||
<property name="tooltip-text" translatable="yes">Cut selected object into the clipboard</property>
|
||||
<property name="icon-name">edit-cut</property>
|
||||
<property name="action-name">win.cut</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes">Paste</property>
|
||||
<property name="tooltip-text" translatable="yes">Paste object from the clipboard</property>
|
||||
<property name="icon-name">edit-paste</property>
|
||||
<property name="action-name">win.paste</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
||||
<property name="has-frame">1</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="vexpand">1</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="treeview1">
|
||||
<property name="model">liststore1</property>
|
||||
<property name="tooltip-column">3</property>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="column1">
|
||||
<property name="title">Name</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="renderer1"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="column2">
|
||||
<property name="title">Surname</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="renderer2"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="column3">
|
||||
<property name="title">Age</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="renderer3"/>
|
||||
<attributes>
|
||||
<attribute name="text">2</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="statusbar1">
|
||||
<property name="xalign">0</property>
|
||||
<property name="margin-start">2</property>
|
||||
<property name="margin-end">2</property>
|
||||
<property name="margin-top">2</property>
|
||||
<property name="margin-bottom">2</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">4</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="first_name_input">
|
||||
<property name="hexpand">True</property>
|
||||
<property name="placeholder-text">e.g. John</property>
|
||||
<property name="tooltip-text">Enter your first name</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">5</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="last_name_label">
|
||||
<property name="accessible-role">label</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label">Last Name:</property>
|
||||
<property name="margin-bottom">2</property>
|
||||
<layout>
|
||||
<property name="column">1</property>
|
||||
<property name="row">4</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="last_name_input">
|
||||
<property name="hexpand">True</property>
|
||||
<property name="placeholder-text">e.g. Jacobs</property>
|
||||
<property name="tooltip-text">Enter your last name</property>
|
||||
<layout>
|
||||
<property name="column">1</property>
|
||||
<property name="row">5</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="register_button">
|
||||
<property name="child">
|
||||
<object class="AdwButtonContent">
|
||||
<property name="icon-name">pan-start-symbolic-rtl</property>
|
||||
<property name="label">Let's Start</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="margin-bottom">50</property>
|
||||
<property name="sensitive">False</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">12</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="email_label">
|
||||
<property name="accessible-role">label</property>
|
||||
<property name="label">Email:</property>
|
||||
<property name="margin-bottom">2</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">6</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="email_input">
|
||||
<property name="placeholder-text">e.g. johnjacobs@email.com</property>
|
||||
<property name="tooltip-text">Enter your email address</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">7</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="password_label">
|
||||
<property name="label">Password:</property>
|
||||
<property name="margin-bottom">2</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">8</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkPasswordEntry" id="p_input">
|
||||
<property name="accessible-role">input</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="placeholder-text">e.g. password test</property>
|
||||
<property name="show-peek-icon">True</property>
|
||||
<property name="tooltip-text">Enter your password</property>
|
||||
<child>
|
||||
<object class="GtkPasswordEntryBuffer">
|
||||
<property name="max-length">12</property>
|
||||
</object>
|
||||
</child>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">9</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="password_label_confirm">
|
||||
<property name="label">Confirm Password:</property>
|
||||
<property name="margin-bottom">2</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">10</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkPasswordEntry" id="p_input_confirm">
|
||||
<property name="accessible-role">input</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="placeholder-text">e.g. password test</property>
|
||||
<property name="show-peek-icon">True</property>
|
||||
<property name="tooltip-text">Enter your password</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">2</property>
|
||||
<property name="row">11</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -1,11 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Created with Cambalache 0.14.0 -->
|
||||
<!--License: GPL-3.0-->
|
||||
<interface>
|
||||
<!-- interface-description A secure Drogon dashboard for managing content from a Drogon web server.
|
||||
|
||||
The content manager user interface. -->
|
||||
<!-- interface-copyright SharpeTronics, Inc. -->
|
||||
<!-- interface-authors SharpeTronics, Inc.
|
||||
oDinZu WenKi -->
|
||||
</interface>
|
@ -1,346 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd">
|
||||
<cambalache-project version="0.13.1" target_tk="gtk-4.0">
|
||||
<ui>
|
||||
(1,None,"drogon-dashboard.ui","admin-dashboard.ui","A secure Drogon dashboard for managing content from a Drogon web server.\n\nThe admin dashboard after login user interface.","SharpeTronics, Inc.","SharpeTronics, Inc.\noDinZu WenKi",None,"https://sharpetronics.com","License: GPL-3.0",None),
|
||||
(2,None,None,"login.ui","A secure Drogon dashboard for managing content from a Drogon web server.\n\nThe login user interface.","SharpeTronics, Inc.","SharpeTronics, Inc.\noDinZu WenKi",None,"https://sharpetronics.com","License: GPL-3.0",None),
|
||||
(3,None,None,"admin-register.ui","A secure Drogon dashboard for managing content from a Drogon web server.\n\nThe admin user registration user interface.","SharpeTronics, Inc.","SharpeTronics, Inc.\noDinZu WenKi",None,"https://sharpetronics.com","License: GPL-3.0",None),
|
||||
(4,None,None,"password-recovery.ui","A secure Drogon dashboard for managing content from a Drogon web server.\n\nThe password recovery user interface.","SharpeTronics, Inc.","SharpeTronics, Inc.\noDinZu WenKi",None,None,"License: GPL-3.0",None),
|
||||
(6,None,None,"content-manager.ui","A secure Drogon dashboard for managing content from a Drogon web server.\n\nThe content manager user interface.","SharpeTronics, Inc.","SharpeTronics, Inc.\noDinZu WenKi",None,None,"License: GPL-3.0",None)
|
||||
</ui>
|
||||
<css>
|
||||
(1,"menu-buttons.css",None,1)
|
||||
</css>
|
||||
<object>
|
||||
(1,1,"GtkWindow","adminDash",None,None,None,None,-1,None),
|
||||
(1,4,"GtkBox",None,1,None,None,None,1,None),
|
||||
(1,5,"GtkGrid",None,4,None,None,None,-1,None),
|
||||
(1,8,"GtkLabel",None,5,None,None,None,None,None),
|
||||
(1,9,"GtkLabel",None,5,None,None,None,1,None),
|
||||
(1,10,"GtkSeparator",None,5,None,None,None,6,None),
|
||||
(1,12,"GtkButton",None,5,None,None,None,3,None),
|
||||
(1,13,"AdwButtonContent",None,12,None,None,None,-1,None),
|
||||
(1,14,"GtkLabel",None,5,None,None,None,4,None),
|
||||
(1,15,"GtkLabel",None,5,None,None,None,2,None),
|
||||
(1,16,"GtkButton",None,5,None,None,None,5,None),
|
||||
(1,17,"AdwButtonContent",None,16,None,None,None,None,None),
|
||||
(1,18,"GtkButton",None,5,None,None,None,7,None),
|
||||
(1,19,"AdwButtonContent",None,18,None,None,None,None,None),
|
||||
(1,20,"GtkButton",None,5,None,None,None,8,None),
|
||||
(1,21,"AdwButtonContent",None,20,None,None,None,None,None),
|
||||
(1,22,"GtkButton",None,5,None,None,None,9,None),
|
||||
(1,23,"AdwButtonContent",None,22,None,None,None,None,None),
|
||||
(1,24,"GtkCenterBox",None,4,None,None,None,-1,None),
|
||||
(2,1,"GtkWindow","loginWindow",None,None,None,None,-1,None),
|
||||
(2,2,"GtkCenterBox",None,1,None,None,None,-1,None),
|
||||
(2,3,"GtkGrid",None,2,None,"center",None,-1,None),
|
||||
(2,4,"GtkImage","logo",3,None,None,None,None,None),
|
||||
(2,5,"GtkLabel","titleLabel",3,None,None,None,1,None),
|
||||
(2,6,"GtkLabel","mottoLabel",3,None,None,None,2,None),
|
||||
(2,7,"GtkLabel","emailLabel",3,None,None,None,3,None),
|
||||
(2,8,"GtkLabel","passwordLabel",3,None,None,None,5,None),
|
||||
(2,10,"GtkTextView","emailid",3,None,None,None,4,None),
|
||||
(2,11,"GtkTextView","password",3,None,None,None,6,None),
|
||||
(2,12,"GtkSeparator",None,3,None,None,None,7,None),
|
||||
(2,13,"GtkLabel","forgotPass",3,None,None,None,8,None),
|
||||
(3,1,"GtkWindow","register_window",None,None,None,None,None,None),
|
||||
(3,2,"GtkCenterBox",None,1,None,None,None,None,None),
|
||||
(3,3,"GtkGrid",None,2,None,"center",None,None,None),
|
||||
(3,4,"GtkImage","logo",3,None,None,None,None,None),
|
||||
(3,5,"GtkLabel","title_label",3,None,None,None,1,None),
|
||||
(3,6,"GtkLabel","moto_label",3,None,None,None,2,None),
|
||||
(3,7,"GtkLabel","first_name_label",3,None,None,None,3,None),
|
||||
(3,9,"GtkLabel","last_name_label",3,None,None,None,5,None),
|
||||
(3,12,"GtkButton","register_button",3,None,None,None,7,None),
|
||||
(3,13,"GtkLabel","email_label",3,None,None,None,8,None),
|
||||
(3,15,"GtkLabel","password_label",3,None,None,None,10,None),
|
||||
(3,17,"GtkLabel","password_label_confirm",3,None,None,None,12,None),
|
||||
(3,20,"AdwButtonContent",None,12,None,None,None,-1,None),
|
||||
(3,21,"GtkPasswordEntry","p_input",3,None,None,None,11,None),
|
||||
(3,22,"GtkPasswordEntry","p_input_confirm",3,None,None,None,13,None),
|
||||
(3,23,"GtkEntry","first_name_input",3,None,None,None,4,None),
|
||||
(3,24,"GtkEntry","last_name_input",3,None,None,None,6,None),
|
||||
(3,25,"GtkEntry","email_input",3,None,None,None,9,None),
|
||||
(3,26,"GtkPasswordEntryBuffer",None,21,None,None,None,-1,None),
|
||||
(4,1,"GtkWindow","passwordWindow",None,None,None,None,None,None),
|
||||
(4,2,"GtkCenterBox",None,1,None,None,None,None,None),
|
||||
(4,3,"GtkGrid",None,2,None,"center",None,None,None),
|
||||
(4,4,"GtkImage","logo",3,None,None,None,None,None),
|
||||
(4,5,"GtkLabel","titleLabel",3,None,None,None,1,None),
|
||||
(4,7,"GtkLabel","emailLabel",3,None,None,None,3,None),
|
||||
(4,8,"GtkTextView","emailid",3,None,None,None,3,None),
|
||||
(4,9,"GtkButton","sendEmail",3,None,None,None,4,None)
|
||||
</object>
|
||||
<object_property>
|
||||
(1,1,"GtkWindow","default-height","700",None,None,None,None,None,None,None,None,None),
|
||||
(1,1,"GtkWindow","default-width","500",None,None,None,None,None,None,None,None,None),
|
||||
(1,1,"GtkWindow","maximized","True",None,None,None,None,None,None,None,None,None),
|
||||
(1,1,"GtkWindow","title","A Drogon Content Manager",None,None,None,None,None,None,None,None,None),
|
||||
(1,4,"GtkBox","spacing","3",None,None,None,None,None,None,None,None,None),
|
||||
(1,4,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,5,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,8,"GtkLabel","label","SharpeTronics",None,None,None,None,None,None,None,None,None),
|
||||
(1,8,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,8,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,8,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,9,"GtkLabel","label","A Drogon Dashboard",None,None,None,None,None,None,None,None,None),
|
||||
(1,9,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,9,"GtkWidget","margin-bottom","3",None,None,None,None,None,None,None,None,None),
|
||||
(1,9,"GtkWidget","margin-start","15",None,None,None,None,None,None,None,None,None),
|
||||
(1,9,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,10,"GtkWidget","margin-bottom","15",None,None,None,None,None,None,None,None,None),
|
||||
(1,12,"GtkButton","child",None,None,None,None,None,13,None,None,None,None),
|
||||
(1,12,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,13,"AdwButtonContent","icon-name","text-x-generic",None,None,None,None,None,None,None,None,None),
|
||||
(1,13,"AdwButtonContent","label"," Content Manager",None,None,None,None,None,None,None,None,None),
|
||||
(1,13,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,14,"GtkLabel","label","PLUGINS",None,None,None,None,None,None,None,None,None),
|
||||
(1,14,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,14,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(1,14,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,14,"GtkWidget","margin-top","35",None,None,None,None,None,None,None,None,None),
|
||||
(1,15,"GtkLabel","label","GENERAL",None,None,None,None,None,None,None,None,None),
|
||||
(1,15,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,15,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(1,15,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,15,"GtkWidget","margin-top","35",None,None,None,None,None,None,None,None,None),
|
||||
(1,16,"GtkButton","child",None,None,None,None,None,17,None,None,None,None),
|
||||
(1,16,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,17,"AdwButtonContent","icon-name","image-x-generic",None,None,None,None,None,None,None,None,None),
|
||||
(1,17,"AdwButtonContent","label"," Media Library",None,None,None,None,None,None,None,None,None),
|
||||
(1,17,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,18,"GtkButton","child",None,None,None,None,None,19,None,None,None,None),
|
||||
(1,18,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,19,"AdwButtonContent","icon-name","application-x-addon-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(1,19,"AdwButtonContent","label"," Plugins",None,None,None,None,None,None,None,None,None),
|
||||
(1,19,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,20,"GtkButton","child",None,None,None,None,None,21,None,None,None,None),
|
||||
(1,20,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,20,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,21,"AdwButtonContent","icon-name","org.gnome.Settings-default-apps-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(1,21,"AdwButtonContent","label"," Marketplace",None,None,None,None,None,None,None,None,None),
|
||||
(1,21,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(1,22,"GtkButton","child",None,None,None,None,None,23,None,None,None,None),
|
||||
(1,22,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,22,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(1,23,"AdwButtonContent","icon-name","applications-system-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(1,23,"AdwButtonContent","label"," Settings",None,None,None,None,None,None,None,None,None),
|
||||
(1,23,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(2,1,"GtkWindow","default-height","300",None,None,None,None,None,None,None,None,None),
|
||||
(2,1,"GtkWindow","default-width","300",None,None,None,None,None,None,None,None,None),
|
||||
(2,1,"GtkWindow","title","Login",None,None,None,None,None,None,None,None,None),
|
||||
(2,4,"GtkImage","icon-name","audio-x-generic",None,None,None,None,None,None,None,None,None),
|
||||
(2,4,"GtkImage","icon-size","large",None,None,None,None,None,None,None,None,None),
|
||||
(2,4,"GtkImage","pixel-size","75",None,None,None,None,None,None,None,None,None),
|
||||
(2,4,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(2,5,"GtkLabel","justify","center",None,None,None,None,None,None,None,None,None),
|
||||
(2,5,"GtkLabel","label","Welcome to SharpeTronics",None,None,None,None,None,None,None,None,None),
|
||||
(2,6,"GtkLabel","justify","center",None,None,None,None,None,None,None,None,None),
|
||||
(2,6,"GtkLabel","label","A Drogon Dashboard",None,None,None,None,None,None,None,None,None),
|
||||
(2,6,"GtkWidget","margin-bottom","15",None,None,None,None,None,None,None,None,None),
|
||||
(2,7,"GtkLabel","label","Email:",None,None,None,None,None,None,None,None,None),
|
||||
(2,7,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
|
||||
(2,7,"GtkWidget","margin-bottom","2",None,None,None,None,None,None,None,None,None),
|
||||
(2,8,"GtkLabel","label","Password:",None,None,None,None,None,None,None,None,None),
|
||||
(2,8,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
|
||||
(2,8,"GtkWidget","margin-bottom","2",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkAccessible","accessible-role","input",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkTextView","accepts-tab","False",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkTextView","indent","3",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkTextView","input-hints","no-emoji | no-spellcheck",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkTextView","input-purpose","email",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkTextView","left-margin","1",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkTextView","pixels-above-lines","5",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkTextView","pixels-below-lines","5",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkWidget","focus-on-click","False",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
|
||||
(2,10,"GtkWidget","tooltip-text","Enter the user email",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkAccessible","accessible-role","input",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkTextView","accepts-tab","False",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkTextView","indent","3",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkTextView","input-hints","no-emoji | no-spellcheck | private",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkTextView","input-purpose","password",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkTextView","left-margin","1",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkTextView","pixels-above-lines","5",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkTextView","pixels-below-lines","5",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkWidget","focus-on-click","False",None,None,None,None,None,None,None,None,None),
|
||||
(2,11,"GtkWidget","tooltip-text","Enter the user password",None,None,None,None,None,None,None,None,None),
|
||||
(2,12,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
|
||||
(2,12,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(2,13,"GtkLabel","label","Forgot password",None,None,None,None,None,None,None,None,None),
|
||||
(3,1,"GtkWindow","default-height","-1",None,None,None,None,None,None,None,None,None),
|
||||
(3,1,"GtkWindow","default-width","-1",None,None,None,None,None,None,None,None,None),
|
||||
(3,1,"GtkWindow","title","Admin Registration",None,None,None,None,None,None,None,None,None),
|
||||
(3,2,"GtkWidget","halign","center",None,None,None,None,None,None,None,None,None),
|
||||
(3,2,"GtkWidget","width-request","500",None,None,None,None,None,None,None,None,None),
|
||||
(3,3,"GtkGrid","column-spacing","7",None,None,None,None,None,None,None,None,None),
|
||||
(3,3,"GtkGrid","row-spacing","5",None,None,None,None,None,None,None,None,None),
|
||||
(3,3,"GtkWidget","halign","center",None,None,None,None,None,None,None,None,None),
|
||||
(3,3,"GtkWidget","width-request","450",None,None,None,None,None,None,None,None,None),
|
||||
(3,4,"GtkAccessible","accessible-role","img",None,None,None,None,None,None,None,None,None),
|
||||
(3,4,"GtkImage","icon-name","application-x-executable",None,None,None,None,None,None,None,None,None),
|
||||
(3,4,"GtkImage","icon-size","large",None,None,None,None,None,None,None,None,None),
|
||||
(3,4,"GtkImage","pixel-size","75",None,None,None,None,None,None,None,None,None),
|
||||
(3,4,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,5,"GtkLabel","justify","center",None,None,None,None,None,None,None,None,None),
|
||||
(3,5,"GtkLabel","label","Welcome",None,None,None,None,None,None,None,None,None),
|
||||
(3,6,"GtkLabel","justify","center",None,None,None,None,None,None,None,None,None),
|
||||
(3,6,"GtkLabel","label","A Drogon Application",None,None,None,None,None,None,None,None,None),
|
||||
(3,6,"GtkWidget","margin-bottom","15",None,None,None,None,None,None,None,None,None),
|
||||
(3,7,"GtkAccessible","accessible-role","label",None,None,None,None,None,None,None,None,None),
|
||||
(3,7,"GtkLabel","label","First Name:",None,None,None,None,None,None,None,None,None),
|
||||
(3,7,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(3,7,"GtkWidget","margin-bottom","2",None,None,None,None,None,None,None,None,None),
|
||||
(3,9,"GtkAccessible","accessible-role","label",None,None,None,None,None,None,None,None,None),
|
||||
(3,9,"GtkLabel","label","Last Name:",None,None,None,None,None,None,None,None,None),
|
||||
(3,9,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(3,9,"GtkWidget","margin-bottom","2",None,None,None,None,None,None,None,None,None),
|
||||
(3,12,"GtkButton","child",None,None,None,None,None,20,None,None,None,None),
|
||||
(3,12,"GtkWidget","margin-bottom","50",None,None,None,None,None,None,None,None,None),
|
||||
(3,12,"GtkWidget","sensitive","False",None,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkAccessible","accessible-role","label",None,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkLabel","label","Email:",None,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkWidget","margin-bottom","2",None,None,None,None,None,None,None,None,None),
|
||||
(3,15,"GtkLabel","label","Password:",None,None,None,None,None,None,None,None,None),
|
||||
(3,15,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
|
||||
(3,15,"GtkWidget","margin-bottom","2",None,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkLabel","label","Confirm Password:",None,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkWidget","margin-bottom","2",None,None,None,None,None,None,None,None,None),
|
||||
(3,20,"AdwButtonContent","icon-name","pan-start-symbolic-rtl",None,None,None,None,None,None,None,None,None),
|
||||
(3,20,"AdwButtonContent","label","Let's Start",None,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkAccessible","accessible-role","input",None,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkPasswordEntry","placeholder-text","e.g. password test",None,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkPasswordEntry","show-peek-icon","True",None,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkWidget","tooltip-text","Enter your password",None,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkAccessible","accessible-role","input",None,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkPasswordEntry","placeholder-text","e.g. password test",None,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkPasswordEntry","show-peek-icon","True",None,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkWidget","tooltip-text","Enter your password",None,None,None,None,None,None,None,None,None),
|
||||
(3,23,"GtkEntry","placeholder-text","e.g. John",None,None,None,None,None,None,None,None,None),
|
||||
(3,23,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
|
||||
(3,23,"GtkWidget","tooltip-text","Enter your first name",None,None,None,None,None,None,None,None,None),
|
||||
(3,24,"GtkEntry","placeholder-text","e.g. Jacobs",None,None,None,None,None,None,None,None,None),
|
||||
(3,24,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
|
||||
(3,24,"GtkWidget","tooltip-text","Enter your last name",None,None,None,None,None,None,None,None,None),
|
||||
(3,25,"GtkEntry","placeholder-text","e.g. johnjacobs@email.com",None,None,None,None,None,None,None,None,None),
|
||||
(3,25,"GtkWidget","tooltip-text","Enter your email address",None,None,None,None,None,None,None,None,None),
|
||||
(3,26,"GtkEntryBuffer","max-length","12",None,None,None,None,None,None,None,None,None),
|
||||
(4,1,"GtkWindow","default-height","300",None,None,None,None,None,None,None,None,None),
|
||||
(4,1,"GtkWindow","default-width","300",None,None,None,None,None,None,None,None,None),
|
||||
(4,1,"GtkWindow","title","Login",None,None,None,None,None,None,None,None,None),
|
||||
(4,4,"GtkImage","icon-name","audio-x-generic",None,None,None,None,None,None,None,None,None),
|
||||
(4,4,"GtkImage","icon-size","large",None,None,None,None,None,None,None,None,None),
|
||||
(4,4,"GtkImage","pixel-size","75",None,None,None,None,None,None,None,None,None),
|
||||
(4,4,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(4,5,"GtkAccessible","accessible-role","label",None,None,None,None,None,None,None,None,None),
|
||||
(4,5,"GtkLabel","justify","center",None,None,None,None,None,None,None,None,None),
|
||||
(4,5,"GtkLabel","label","Password Recovery",None,None,None,None,None,None,None,None,None),
|
||||
(4,5,"GtkWidget","margin-bottom","15",None,None,None,None,None,None,None,None,None),
|
||||
(4,7,"GtkLabel","label","Email:",None,None,None,None,None,None,None,None,None),
|
||||
(4,7,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
|
||||
(4,7,"GtkWidget","margin-bottom","2",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkAccessible","accessible-role","input",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkTextView","accepts-tab","False",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkTextView","indent","3",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkTextView","input-hints","no-emoji | no-spellcheck",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkTextView","input-purpose","email",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkTextView","left-margin","1",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkTextView","pixels-above-lines","5",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkTextView","pixels-below-lines","5",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkWidget","focus-on-click","False",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkWidget","tooltip-text","Enter the user email",None,None,None,None,None,None,None,None,None),
|
||||
(4,8,"GtkWidget","width-request","275",None,None,None,None,None,None,None,None,None),
|
||||
(4,9,"GtkButton","label","Send",None,None,None,None,None,None,None,None,None)
|
||||
</object_property>
|
||||
<object_layout_property>
|
||||
(1,5,8,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(1,5,8,"GtkGridLayoutChild","column-span","1",None,None,None,None),
|
||||
(1,5,8,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(1,5,9,"GtkGridLayoutChild","row","1",None,None,None,None),
|
||||
(1,5,9,"GtkGridLayoutChild","row-span","2",None,None,None,None),
|
||||
(1,5,10,"GtkGridLayoutChild","row","3",None,None,None,None),
|
||||
(1,5,12,"GtkGridLayoutChild","row","5",None,None,None,None),
|
||||
(1,5,14,"GtkGridLayoutChild","row","6",None,None,None,None),
|
||||
(1,5,15,"GtkGridLayoutChild","row","8",None,None,None,None),
|
||||
(1,5,16,"GtkGridLayoutChild","row","7",None,None,None,None),
|
||||
(1,5,18,"GtkGridLayoutChild","row","9",None,None,None,None),
|
||||
(1,5,20,"GtkGridLayoutChild","row","10",None,None,None,None),
|
||||
(1,5,22,"GtkGridLayoutChild","row","11",None,None,None,None),
|
||||
(2,3,4,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(2,3,4,"GtkGridLayoutChild","column-span","1",None,None,None,None),
|
||||
(2,3,4,"GtkGridLayoutChild","row","0",None,None,None,None),
|
||||
(2,3,4,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(2,3,5,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(2,3,5,"GtkGridLayoutChild","column-span","1",None,None,None,None),
|
||||
(2,3,5,"GtkGridLayoutChild","row","1",None,None,None,None),
|
||||
(2,3,5,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(2,3,6,"GtkGridLayoutChild","row","2",None,None,None,None),
|
||||
(2,3,7,"GtkGridLayoutChild","row","4",None,None,None,None),
|
||||
(2,3,8,"GtkGridLayoutChild","row","7",None,None,None,None),
|
||||
(2,3,10,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(2,3,10,"GtkGridLayoutChild","row","5",None,None,None,None),
|
||||
(2,3,11,"GtkGridLayoutChild","row","8",None,None,None,None),
|
||||
(2,3,12,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(2,3,12,"GtkGridLayoutChild","column-span","1",None,None,None,None),
|
||||
(2,3,12,"GtkGridLayoutChild","row","9",None,None,None,None),
|
||||
(2,3,12,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(2,3,13,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(2,3,13,"GtkGridLayoutChild","column-span","1",None,None,None,None),
|
||||
(2,3,13,"GtkGridLayoutChild","row","10",None,None,None,None),
|
||||
(2,3,13,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(3,3,4,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(3,3,4,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,4,"GtkGridLayoutChild","row","0",None,None,None,None),
|
||||
(3,3,4,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(3,3,5,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(3,3,5,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,5,"GtkGridLayoutChild","row","1",None,None,None,None),
|
||||
(3,3,5,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(3,3,6,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(3,3,6,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,6,"GtkGridLayoutChild","row","2",None,None,None,None),
|
||||
(3,3,7,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(3,3,7,"GtkGridLayoutChild","row","4",None,None,None,None),
|
||||
(3,3,9,"GtkGridLayoutChild","column","1",None,None,None,None),
|
||||
(3,3,9,"GtkGridLayoutChild","row","4",None,None,None,None),
|
||||
(3,3,12,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(3,3,12,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,12,"GtkGridLayoutChild","row","12",None,None,None,None),
|
||||
(3,3,12,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(3,3,13,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,13,"GtkGridLayoutChild","row","6",None,None,None,None),
|
||||
(3,3,15,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,15,"GtkGridLayoutChild","row","8",None,None,None,None),
|
||||
(3,3,17,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,17,"GtkGridLayoutChild","row","10",None,None,None,None),
|
||||
(3,3,21,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,21,"GtkGridLayoutChild","row","9",None,None,None,None),
|
||||
(3,3,22,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,22,"GtkGridLayoutChild","row","11",None,None,None,None),
|
||||
(3,3,23,"GtkGridLayoutChild","row","5",None,None,None,None),
|
||||
(3,3,24,"GtkGridLayoutChild","column","1",None,None,None,None),
|
||||
(3,3,24,"GtkGridLayoutChild","row","5",None,None,None,None),
|
||||
(3,3,25,"GtkGridLayoutChild","column-span","2",None,None,None,None),
|
||||
(3,3,25,"GtkGridLayoutChild","row","7",None,None,None,None),
|
||||
(4,3,4,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(4,3,4,"GtkGridLayoutChild","column-span","1",None,None,None,None),
|
||||
(4,3,4,"GtkGridLayoutChild","row","0",None,None,None,None),
|
||||
(4,3,4,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(4,3,5,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(4,3,5,"GtkGridLayoutChild","column-span","1",None,None,None,None),
|
||||
(4,3,5,"GtkGridLayoutChild","row","1",None,None,None,None),
|
||||
(4,3,5,"GtkGridLayoutChild","row-span","1",None,None,None,None),
|
||||
(4,3,7,"GtkGridLayoutChild","column","0",None,None,None,None),
|
||||
(4,3,7,"GtkGridLayoutChild","row","2",None,None,None,None),
|
||||
(4,3,8,"GtkGridLayoutChild","row","3",None,None,None,None),
|
||||
(4,3,9,"GtkGridLayoutChild","row","4",None,None,None,None)
|
||||
</object_layout_property>
|
||||
<object_data>
|
||||
(2,5,"GtkLabel",2,2,None,1,None,None,None,None)
|
||||
</object_data>
|
||||
</cambalache-project>
|
Binary file not shown.
144
src/ui/login.ui
144
src/ui/login.ui
@ -1,144 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Created with Cambalache 0.14.0 -->
|
||||
<!--License: GPL-3.0-->
|
||||
<interface domain="https://sharpetronics.com">
|
||||
<!-- interface-description A secure Drogon dashboard for managing content from a Drogon web server.
|
||||
|
||||
The login user interface. -->
|
||||
<!-- interface-copyright SharpeTronics, Inc. -->
|
||||
<!-- interface-authors SharpeTronics, Inc.
|
||||
oDinZu WenKi -->
|
||||
<requires lib="gtk" version="4.6"/>
|
||||
<object class="GtkWindow" id="loginWindow">
|
||||
<property name="default-height">300</property>
|
||||
<property name="default-width">300</property>
|
||||
<property name="title">Login</property>
|
||||
<child>
|
||||
<object class="GtkCenterBox">
|
||||
<child type="center">
|
||||
<object class="GtkGrid">
|
||||
<child>
|
||||
<object class="GtkImage" id="logo">
|
||||
<property name="icon-name">audio-x-generic</property>
|
||||
<property name="icon-size">large</property>
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="pixel-size">75</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">1</property>
|
||||
<property name="row">0</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="titleLabel">
|
||||
<property name="justify">center</property>
|
||||
<property name="label">Welcome to SharpeTronics</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">1</property>
|
||||
<property name="row">1</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="mottoLabel">
|
||||
<property name="justify">center</property>
|
||||
<property name="label">A Drogon Dashboard</property>
|
||||
<property name="margin-bottom">15</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">2</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="emailLabel">
|
||||
<property name="label">Email:</property>
|
||||
<property name="margin-bottom">2</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">4</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTextView" id="emailid">
|
||||
<property name="accepts-tab">False</property>
|
||||
<property name="accessible-role">input</property>
|
||||
<property name="focus-on-click">False</property>
|
||||
<property name="indent">3</property>
|
||||
<property name="input-hints">no-emoji | no-spellcheck</property>
|
||||
<property name="input-purpose">email</property>
|
||||
<property name="left-margin">1</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="pixels-above-lines">5</property>
|
||||
<property name="pixels-below-lines">5</property>
|
||||
<property name="tooltip-text">Enter the user email</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">5</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="passwordLabel">
|
||||
<property name="label">Password:</property>
|
||||
<property name="margin-bottom">2</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">7</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTextView" id="password">
|
||||
<property name="accepts-tab">False</property>
|
||||
<property name="accessible-role">input</property>
|
||||
<property name="focus-on-click">False</property>
|
||||
<property name="indent">3</property>
|
||||
<property name="input-hints">no-emoji | no-spellcheck | private</property>
|
||||
<property name="input-purpose">password</property>
|
||||
<property name="left-margin">1</property>
|
||||
<property name="pixels-above-lines">5</property>
|
||||
<property name="pixels-below-lines">5</property>
|
||||
<property name="tooltip-text">Enter the user password</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">8</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">1</property>
|
||||
<property name="row">9</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="forgotPass">
|
||||
<property name="label">Forgot password</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">1</property>
|
||||
<property name="row">10</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
@ -1,93 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Created with Cambalache 0.14.0 -->
|
||||
<!--License: GPL-3.0-->
|
||||
<interface>
|
||||
<!-- interface-description A secure Drogon dashboard for managing content from a Drogon web server.
|
||||
|
||||
The password recovery user interface. -->
|
||||
<!-- interface-copyright SharpeTronics, Inc. -->
|
||||
<!-- interface-authors SharpeTronics, Inc.
|
||||
oDinZu WenKi -->
|
||||
<requires lib="gtk" version="4.6"/>
|
||||
<object class="GtkWindow" id="passwordWindow">
|
||||
<property name="default-height">300</property>
|
||||
<property name="default-width">300</property>
|
||||
<property name="title">Login</property>
|
||||
<child>
|
||||
<object class="GtkCenterBox">
|
||||
<child type="center">
|
||||
<object class="GtkGrid">
|
||||
<child>
|
||||
<object class="GtkImage" id="logo">
|
||||
<property name="icon-name">audio-x-generic</property>
|
||||
<property name="icon-size">large</property>
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="pixel-size">75</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">1</property>
|
||||
<property name="row">0</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="titleLabel">
|
||||
<property name="accessible-role">label</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="label">Password Recovery</property>
|
||||
<property name="margin-bottom">15</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="column-span">1</property>
|
||||
<property name="row">1</property>
|
||||
<property name="row-span">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="emailLabel">
|
||||
<property name="label">Email:</property>
|
||||
<property name="margin-bottom">2</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">2</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTextView" id="emailid">
|
||||
<property name="accepts-tab">False</property>
|
||||
<property name="accessible-role">input</property>
|
||||
<property name="focus-on-click">False</property>
|
||||
<property name="indent">3</property>
|
||||
<property name="input-hints">no-emoji | no-spellcheck</property>
|
||||
<property name="input-purpose">email</property>
|
||||
<property name="left-margin">1</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="pixels-above-lines">5</property>
|
||||
<property name="pixels-below-lines">5</property>
|
||||
<property name="tooltip-text">Enter the user email</property>
|
||||
<property name="width-request">275</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">3</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="sendEmail">
|
||||
<property name="label">Send</property>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">4</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
@ -1,7 +1,7 @@
|
||||
# Note: drogon_ctl was implemented to create the local template architecture
|
||||
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(local-drogon-api-server CXX)
|
||||
project(DrogonCMS_API_Server CXX)
|
||||
|
||||
include(CheckIncludeFileCXX)
|
||||
|
@ -8,7 +8,7 @@
|
||||
//port: server port, 5432 by default;
|
||||
"port": 5432,
|
||||
//dbname: Database name;
|
||||
"dbname": "",
|
||||
"dbname": "drogoncmsdb",
|
||||
//schema: valid for postgreSQL, "public" by default;
|
||||
"schema": "public",
|
||||
//user: User name
|
1161
vendors/cmake/CPM_0.38.7.cmake
vendored
Normal file
1161
vendors/cmake/CPM_0.38.7.cmake
vendored
Normal file
File diff suppressed because it is too large
Load Diff
24
vendors/cmake/cpm/get_cpm.cmake
vendored
Normal file
24
vendors/cmake/cpm/get_cpm.cmake
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors
|
||||
|
||||
set(CPM_DOWNLOAD_VERSION 0.38.7)
|
||||
set(CPM_HASH_SUM "83e5eb71b2bbb8b1f2ad38f1950287a057624e385c238f6087f94cdfc44af9c5")
|
||||
|
||||
if(CPM_SOURCE_CACHE)
|
||||
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||
elseif(DEFINED ENV{CPM_SOURCE_CACHE})
|
||||
set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||
else()
|
||||
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||
endif()
|
||||
|
||||
# Expand relative path. This is important if the provided path contains a tilde (~)
|
||||
get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)
|
||||
|
||||
file(DOWNLOAD
|
||||
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
|
||||
${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM}
|
||||
)
|
||||
|
||||
include(${CPM_DOWNLOAD_LOCATION})
|
12
vendors/simple-reverse-proxy/CMakeLists.txt
vendored
12
vendors/simple-reverse-proxy/CMakeLists.txt
vendored
@ -1,5 +1,5 @@
|
||||
cmake_minimum_required (VERSION 3.5)
|
||||
project(simple_reverse_proxy CXX)
|
||||
project(DrogonCMS_Reverse_Proxy CXX)
|
||||
|
||||
include(CheckIncludeFileCXX)
|
||||
|
||||
@ -14,7 +14,7 @@ endif()
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
add_executable(simple_reverse_proxy main.cc)
|
||||
add_executable(DrogonCMS_Reverse_Proxy main.cc)
|
||||
|
||||
##########
|
||||
# If you include the drogon source code locally in your project, use this method to add drogon
|
||||
@ -23,13 +23,13 @@ add_executable(simple_reverse_proxy main.cc)
|
||||
##########
|
||||
|
||||
find_package(Drogon CONFIG REQUIRED)
|
||||
target_link_libraries(simple_reverse_proxy PRIVATE Drogon::Drogon)
|
||||
target_link_libraries(DrogonCMS_Reverse_Proxy PRIVATE Drogon::Drogon)
|
||||
|
||||
if(CMAKE_CXX_STANDARD LESS 17)
|
||||
#With C++14, use boost to support any and string_view
|
||||
message(STATUS "use c++14")
|
||||
find_package(Boost 1.61.0 REQUIRED)
|
||||
target_include_directories(simple_reverse_proxy PRIVATE ${Boost_INCLUDE_DIRS})
|
||||
target_include_directories(DrogonCMS_Reverse_Proxy PRIVATE ${Boost_INCLUDE_DIRS})
|
||||
else()
|
||||
message(STATUS "use c++17")
|
||||
endif()
|
||||
@ -52,5 +52,5 @@ foreach(cspFile ${SCP_LIST})
|
||||
set(VIEWSRC ${VIEWSRC} ${classname}.cc)
|
||||
endforeach()
|
||||
|
||||
target_include_directories(simple_reverse_proxy PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/models)
|
||||
target_sources(simple_reverse_proxy PRIVATE ${SRC_DIR} ${CTL_SRC} ${FILTER_SRC} ${VIEWSRC} ${PLUGIN_SRC} ${MODEL_SRC})
|
||||
target_include_directories(DrogonCMS_Reverse_Proxy PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/models)
|
||||
target_sources(DrogonCMS_Reverse_Proxy PRIVATE ${SRC_DIR} ${CTL_SRC} ${FILTER_SRC} ${VIEWSRC} ${PLUGIN_SRC} ${MODEL_SRC})
|
||||
|
Loading…
x
Reference in New Issue
Block a user