All Projects â†’ saiftynet â†’ Guidefate

saiftynet / Guidefate

Licence: gpl-3.0
GUI Design From A Text Editor

Programming Languages

perl
6916 projects

Labels

Projects that are alternatives of or similar to Guidefate

Xfreq
a UNIX software to monitor the Intel Core i7 and Core 2 showing turbo boost, temperatures, cstates and other processor features.
Stars: ✭ 47 (-26.56%)
Mutual labels:  gui
Wordagam
A fun & interactive word game 🍄
Stars: ✭ 55 (-14.06%)
Mutual labels:  gui
Wxpython Examples
Source code examples from the ZetCode's wxPython tutorial
Stars: ✭ 60 (-6.25%)
Mutual labels:  gui
Pokemongo Bot
A full functional bot that can act like the normal phone app
Stars: ✭ 1,053 (+1545.31%)
Mutual labels:  gui
Crunchyroll Downloader
A little GUI to download crap from crunchyroll.
Stars: ✭ 54 (-15.62%)
Mutual labels:  gui
Ttkwidgets
A collection of widgets for Tkinter's ttk extensions by various authors
Stars: ✭ 57 (-10.94%)
Mutual labels:  gui
Chocolateygui
A delicious GUI for Chocolatey
Stars: ✭ 1,031 (+1510.94%)
Mutual labels:  gui
Awtk Linux Fb
awtk port for linux framebuffer
Stars: ✭ 61 (-4.69%)
Mutual labels:  gui
Gdut Drcom Dialer
ćź‡ć·„ć€§ç‹—è”çœ‘æ‹šć·ć™š
Stars: ✭ 54 (-15.62%)
Mutual labels:  gui
Nativefiledialog
A tiny, neat C library that portably invokes native file open and save dialogs.
Stars: ✭ 1,100 (+1618.75%)
Mutual labels:  gui
Gdbgui
Browser-based frontend to gdb (gnu debugger). Add breakpoints, view the stack, visualize data structures, and more in C, C++, Go, Rust, and Fortran. Run gdbgui from the terminal and a new tab will open in your browser.
Stars: ✭ 8,339 (+12929.69%)
Mutual labels:  gui
Macytdl
A macOS GUI front-end for the youtube-dl video downloader
Stars: ✭ 52 (-18.75%)
Mutual labels:  gui
Nana Demo
demos and tests for Nana C++ GUI library
Stars: ✭ 57 (-10.94%)
Mutual labels:  gui
Bogue
GUI library for ocaml based on SDL2
Stars: ✭ 48 (-25%)
Mutual labels:  gui
Customui
Library to create custom UI's in MCPE 1.2+
Stars: ✭ 60 (-6.25%)
Mutual labels:  gui
Kowl
Apache Kafka Web UI for exploring messages, consumers, configurations and more with a focus on a good UI & UX.
Stars: ✭ 1,036 (+1518.75%)
Mutual labels:  gui
Batchimageprocessor
A Mass Image Processing tool for Windows
Stars: ✭ 55 (-14.06%)
Mutual labels:  gui
Gimu
Cross-platform GUI for go is never this easy and clean.
Stars: ✭ 64 (+0%)
Mutual labels:  gui
Neuralnetplayground
A MATLAB implementation of the TensorFlow Neural Networks Playground seen on http://playground.tensorflow.org/
Stars: ✭ 60 (-6.25%)
Mutual labels:  gui
Googledriveuploadtool
A tool for Windows to upload and manage files in Google Drive. It resumes uploads in case of an error or failure. Perfect for uploading large files or if your connection is unstable.
Stars: ✭ 58 (-9.37%)
Mutual labels:  gui

GUIDeFATE

GUI Design From A Text Editor

Designing a graphical User interface requires knowledge of things like toolkit libraries, platform context etc. At least I think it does. I am a relatively new programmer in that I have near zero experience in GUI programming outside a web page. So when I explore how to design an application which works outside a command line or a browser window, I feel tremendously out of my depth. When I see the programming interfaces to these interfaces (QT, GTK, TK, ncurses, HTML) my bewilderment reaches even greater heights.

Sure there are clever things like wxGlade, and QT Designer etc. These are tools that also require more skill than I possess; I am old and I can just about use a text editor as an IDE. So what is needed? I need a GUI designer that: -

  1. Is simple, abstracting away from the underlying Toolkit/platform
  2. Requires the simplest designer possible, with a visual representation of the interface
  3. Allows the use use of multiple different GUI engines
  4. Makes it easy recognise the interface elements by simply looking at the code

So how might this work?

The user uses a text editor to design the window. Not new of course...text editors have had to be used to describe windows when other graphical representation methods were not possible. As this is already a two dimensional data, it should be possible to convert this into an actual graphical interface through an interpreter. The developer simply has to draw the interface in text and then program the interaction that is required. From version 0.06 multiple backends are supported, version 0.11 has 7 backends. For more details and working examples see the wiki

So how do I use it?

GUIDeFATE requires an available working backend with their relevant connecting Perl modules. Different users will find different backends can be installed on their system. For instance Wx may not install easily in Perl versions before 5.16 without a lot of effeort. Tk installs relatively easily gnerally and Gtk, and Win32 (for windows machines) may be more easily installed. Currently I dont feel it is robust enough for installation through CPAN...primarily because an attempt is made to install the backends which inariably fail because (e.g. Win32 is not available on Linux machines). So what I would suggest is that you unzip the "experimental environment" in your working folder and use 'use lib <path_to_lib>;" in your code. The example code that comes with the folder will probably be the best way to see how it works.

Textual Representation of a Graphical Interface

A simple hello world

+------------------+
|T Message         |
+------------------+
|                  |
|  Hello World! !  |
|                  |
+------------------+

A Calculator

+------------------------+
|T  Calculator           |
+------------------------+
|  [__________________]  |
|  { V }{ % }{ C }{AC }  |
|  { 1 }{ 2 }{ 3 }{ + }  |
|  { 4 }{ 5 }{ 6 }{ - }  |
|  { 7 }{ 8 }{ 9 }{ * }  |
|  { . }{ 0 }{ = }{ / }  |
|  made with GUIdeFATE   |
+------------------------+

Example PERL script

#!/usr/bin/perl -w
use strict;
use GUIDeFATE;
use GUIDeFATE qw<$frame>;
package Main;

my $window=<<END;
+------------------------+
|T  Calculator           |
+------------------------+
|  [                  ]  |
|  { V }{ % }{ C }{AC }  |
|  { 1 }{ 2 }{ 3 }{ + }  |
|  { 4 }{ 5 }{ 6 }{ - }  |
|  { 7 }{ 8 }{ 9 }{ * }  |
|  { . }{ 0 }{ = }{ / }  |
|  made with GUIdeFATE   |
+------------------------+

END

my $gui=GUIDeFATE->new($window [$backend],[$assist]); # API changed at version 0.06
# $backend is one of Wx(Default), Tk or Gtk
# $assist is one or  "q" (quiet, default), "v" (verbose) or "a" for Autogenerate
$gui->MainLoop;

This produces something like Calculator Screenshot

From Version 0.10 seven backends are supported. Wx, Tk, Gtk, Qt, Win32, HTML, Websocket. These have different prerequisites.

  • Perl5.8.8, Exporter, Wx, Wx::Perl::Imagick (for Wx interface)
  • Perl5.8.8, Exporter, Tk, Image::Magick, Tk::JPEG, MIME::Base64 (for Tk interface)
  • Perl5.8.8, Exporter, Glib, Gtk3 (for Gtk3 interface)
  • Perl5.8.8, Exporter, Glib, Gtk2 (for Gtk2 interface)
  • Perl5.8.8, Exporter, QtCore4, QtGui4 (for Qt interface)
  • Perl5.8.8, Exporter, Win32, Imager (for Win32 interface)
  • Perl5.8.8, Exporter (for HTML interface)
  • Perl5.8.8, Exporter, Net::WebSocket::Server (for WebSocket interface )

Widgets

Supported Widgets: -

  • Buttons
  • Single text entry
  • Multi-line Text entry
  • ComboBoxes
  • Menu (partial)
  • Image panel
  • Timers also supported

More will be made as time goes along

NOTE: Amajor change happens from version 0.13 onwards. The Back-end modules (e.g. GFTk, GFWx, etc) will now reside in a folder called GUIDeFATE...this is reduce root namespace pollution making it easier to maintain. This will be commited to CPAN in a few months.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].