Package: galaxie-curses
Galaxie Curses, The ToolKitOnce upon a time, this project was hosted on a ancient platform called GitHub. Then came the Buyer.
The Buyer bought GitHub, willing to rule over its community.I was not to sell, so here is the new home of "https://github.com/Tuuux/galaxie-curses".The ProjectGalaxie CursesaliasLe Truc Blue(The Blue Thing) is a free software Tool Kit for theNCursesAPI.
It can be consider as a text based implementation of the famousGTK+Library (Or Ultra Inspired...).Whereimplementationmean:Devellop a project from a documentation specs.Originally the project have start in 2016 by author Jérôme.O.Then the lib is write inPythonInstallationPre Version:pip install galaxie-cursesDev Version:pip install -i https://test.pypi.org/simple/ galaxie-cursesDocumentation:API:https://galaxie-curses.readthedocs.io/GLXCurses.htmlReadthedocs link:http://galaxie-curses.readthedocs.ioThe MissionProvide a Text Based ToolKit with powerfull high level Widget (Select Color, Printer Dialog, FileSelector).During lot of years the main stream was to provide big computer with big GUI Toolkit,
unfortunately almost nobody have care about ultra low profile computer and we are now in a situation where no mature
ToolKit is ready to use onpen computer. Time's change then it's time to change the world ...The goal of the version 1.0 will be to create a application like Midnight-Commander withGLXCurses.Midnight-Commander:https://midnight-commander.orgThe Lib should have no dependency , then consider Applications will come with they own dependency.ContributeYou welcome !!!TheGTK+ v3documentation is our model:https://developer.gnome.org/gtk3/stable/Issue Tracker:https://gitlab.com/Tuuux/galaxie-curses/issuesSource Code:https://gitlab.com/Tuuux/galaxie-cursesIt's almost impossible to code widget without UnitTest, that because eyes can't easily control background operations.ScreenshotsProgressBar demoMini Commander (MC UI Clone)Label with markdownv0.3rc1v0.2Examplev0.2#!/usr/bin/env pythonimportGLXCursesif__name__=='__main__':# Create the main Applicationapp=GLXCurses.Application()# Create a Labellabel=GLXCurses.Label()label.set_markdown("Hello **World** !!!")label.set_single_line_mode(True)# Create the main Window and add our Label insidewin=GLXCurses.Window()win.add(label)defhandle_keys(self,event_signal,*event_args):ifevent_args[0]==ord('q'):# Everything have a end, the main loop too ...# Control + C work automaticallyGLXCurses.mainloop.stop()# Add Everything inside the Applicationapp.add_window(win)# Connect the application to Curses eventapp.connect('CURSES',handle_keys)# Main loopGLXCurses.mainloop.start()More examples can be found here:https://gitlab.com/Tuuux/galaxie-curses/tree/master/examplesFeaturesMainLoop from EveLoopEventBus from EveLoopSignal basedApplication ClassComponent like Button, Container, ProgressBar, ImageHave GTK+ design as roadmapAuto ResizeMinimize NCurses crashCommon thing for a text based graphic interface tool kit :)Use RGB color (255, 0, 255)Image WidgetLabel can use MarkDownRoadmapGalaxie-Cursesis a Text BasedGTK+like, then the GTK+ Doc is theroadmap.Yes NCurses haven't icons or pixel management :) , then chars replace pixel. Each sizes x, y , height, width are in chars value.100% Test Code CoverageAdd Video WidgetUltra Low Power usage.Widget over SSHDBus integrationAudioData to Audio file for backup or long distance radioBuild Application via YAML file (it have been report about a low TUI must have light programation style)Every Examples should be a small and efficient Desktop component, Calc, Config Panel, File Explorer, Panel, etc ...Widget capability to save information'sLook like MC similar to GTK codeNote that actually a Curses Window Manager is not on the pipe. Everything is ready for ...How that possibleI don't know if one day i'll finish the lib. I do my best for that.Unfortunately GLXCurses is not a GTK Clone it will take too mush time for one guy to make it possible.
For minimize the effort i implementpropertyandWidgetclass with the same GTK+ design.I consider haven't the enginier level to create a UI design by my self, then i have choose GTK Documentation as specs.GTK Method's are implemented only if that really require.
The lib use massively properties getter and setter decorator, for limit the need of method.For be brief it take advantage of Python object where GTK use GLIBC and method's for make the same thing.If a method is implemented, then it's a pure GTK+ implementation else the lib use a property in pure Python style.Exemple:widget=Widget.new()widget.set_decorated(True)is replace bywidget=Widget()widget.decorated=TrueI focus my effort to have capability to make MC clone with GLXCurses, and limit my effort to that direction. (yes i would like more too ...)Note for GTK+ Project Developer'sI'm really confuse about the big copy/past i making from theGTK+documentation during the creation of
theGalaxie-Cursedocumentation, that because english is not my primary language and i'm a bit limited for make a
ToolKit documentation without that ...
Consider that actual documentation ofGalaxie-Curseas the better i can do and it
include to copy/past large parts of theGTK+documentation. (sorry about that)As you probably seeGalaxie-Cursesis a Text BasedGTK+with a hard dependency to theGTK+documentation.ThanksTo everyone i have interrest to it project, copy it, use it, diffuse it , and have fun ...AllGalaxieAPI is develop withpycharmas IDE fromJetBrainslink:https://www.jetbrains.comJetBrains graciously have provide to us licenses forpycharm profesionalLicenseGNU GENERAL PUBLIC LICENSE Version 3https://gitlab.com/Tuuux/galaxie-curses/blob/master/LICENSE