Giter Club home page Giter Club logo

libhelium's Introduction

libhelium

The elegant framework for building beautiful and useful apps. libhelium is suited for building amazing native applications, regardless of design background or skill level.

License: LGPL v3

Demo Screenshot

🚀 Getting Started

Welcome! Please see the various resources below. If you have any questions, our Discord is always open :)

Note libhelium's documentation is a bit sparse right now, if you'd like to help us, please see #23.

🛠️ Dependencies

Please make sure you have these dependencies first before building.

gtk4
libgee-0.8
meson
vala

Please note that the demo also requires the following dependencies.

libbismuth-1.0
blueprint-compiler

Generating documentation requires the following.

valadoc
gi-docgen

🏗️ Building

Simply clone this repo, then:

meson _build --prefix=/usr && cd _build
sudo ninja install

For additional build options, please see meson_options.txt. For example, to enable the demo:

meson _build -Ddemo=true --prefix=/usr && cd _build
sudo ninja install

libhelium's People

Contributors

lainsce avatar lleyton avatar weblate avatar itsjamie9494 avatar lexisother avatar korewachino avatar madonuko avatar yakushabb avatar raboneko avatar pisekpiskovec avatar ottercodes101 avatar maujin111 avatar umeaboy avatar nothingneko avatar imgbotapp avatar ellyq avatar kyweehz avatar

Stargazers

Spaziale avatar  avatar Jules CHEVALLET avatar Bartłomiej Maryńczak avatar Manoj Baishya avatar  avatar Denys Sedchenko avatar Paul G avatar Daimar Stein avatar  avatar  avatar  avatar Roberto Leinardi avatar  avatar Julia avatar Colin Kiama avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

libhelium's Issues

ninja install fails with `error: unable to open `_build/lib/libhelium-1.so.1.p/Models/Application.c' for writing`

What Happened?

The step ninja -v -C _build install of the installation fails with the following error on Ubuntu 22.04.

Steps to Reproduce

On Ubuntu 22.04:

clone --branch 1.5.19 https://github.com/tau-OS/libhelium.git
cd libhelium || return $?
meson _build --prefix=/usr
ninja -v -C _build install

Expected Behavior

The library is installed on the system.

OS Version

Other Linux

Software Version

Latest release (I have run all updates)

Log Output

$ ninja -v -C _build install
ninja: Entering directory `_build'
[1/102] /usr/bin/glib-compile-resources ../data/he.gresource.xml --sourcedir ../data --sourcedir ../ --internal --generate --target he-gresource.h
[2/102] /usr/bin/glib-compile-resources ../data/he.gresource.xml --sourcedir ../data --sourcedir ../ --internal --generate --target he-gresource.c --dependency-file he-gresource.c.d
[3/102] valac -C --debug --debug --define=LINUX --abi-stability --target-glib=2.50 --gresourcesdir /home/rleinardi/Workspace/Misc/libhelium/_build/demo/data --pkg posix --pkg gtk4 --pkg gee-0.8 --pkg gobject-2.0 --target-glib 2.50 --pkg glib-2.0 --pkg gio-unix-2.0 --pkg gio-2.0 --color=always --directory lib/libhelium-1.so.1.p --basedir ../lib --library libhelium-1 --header lib/libhelium-1.h --vapi ../libhelium-1.vapi --gir ../He-1.gir --gresources=../data/gresource.xml --gresources=../data/he.gresource.xml ../lib/Models/Application.vala ../lib/Models/Bin.vala ../lib/Models/Button.vala ../lib/Models/ButtonContent.vala ../lib/Models/Colors.vala ../lib/Models/Schemes/Content.vala ../lib/Models/Schemes/Default.vala ../lib/Models/Schemes/Monochrome.vala ../lib/Models/Schemes/Muted.vala ../lib/Models/Schemes/Scheme.vala ../lib/Models/Schemes/Vibrant.vala ../lib/Models/View.vala ../lib/Models/Window.vala ../lib/Utils/Color.vala ../lib/Utils/Color/ARGB.vala ../lib/Utils/Color/CAM16.vala ../lib/Utils/Color/GdkRGBA.vala ../lib/Utils/Color/HCT/CriticalPlanes.vala ../lib/Utils/Color/HCT/HCT.vala ../lib/Utils/Color/HCT/HCTSolver.vala ../lib/Utils/Color/Hexcode.vala ../lib/Utils/Color/LAB.vala ../lib/Utils/Color/LCH.vala ../lib/Utils/Color/RGB.vala ../lib/Utils/Color/XYZ.vala ../lib/Utils/Desktop.vala ../lib/Utils/Ensor/Ensor.vala ../lib/Utils/Ensor/Quantize/Quantizer.vala ../lib/Utils/Ensor/Quantize/QuantizerCelebi.vala ../lib/Utils/Ensor/Quantize/QuantizerMap.vala ../lib/Utils/Ensor/Quantize/QuantizerResult.vala ../lib/Utils/Ensor/Quantize/QuantizerWsmeans.vala ../lib/Utils/Ensor/Quantize/QuantizerWu.vala ../lib/Utils/Ensor/Score.vala ../lib/Utils/Math.vala ../lib/Utils/Misc.vala ../lib/Utils/Portal.vala ../lib/Utils/ViewingConditions.vala ../lib/Widgets/AboutWindow.vala ../lib/Widgets/AppBar.vala ../lib/Widgets/ApplicationWindow.vala ../lib/Widgets/Avatar.vala ../lib/Widgets/Badge.vala ../lib/Widgets/Banner.vala ../lib/Widgets/BottomBar.vala ../lib/Widgets/Chip.vala ../lib/Widgets/ChipGroup.vala ../lib/Widgets/ContentBlock.vala ../lib/Widgets/ContentBlockImage.vala ../lib/Widgets/ContentBlockImageCluster.vala ../lib/Widgets/ContentList.vala ../lib/Widgets/DatePicker.vala ../lib/Widgets/Dialog.vala ../lib/Widgets/DisclosureButton.vala ../lib/Widgets/EmptyPage.vala ../lib/Widgets/FillButton.vala ../lib/Widgets/IconicButton.vala ../lib/Widgets/MiniContentBlock.vala ../lib/Widgets/ModifierBadge.vala ../lib/Widgets/NavigationRail.vala ../lib/Widgets/OutlineButton.vala ../lib/Widgets/OverlayButton.vala ../lib/Widgets/PillButton.vala ../lib/Widgets/SegmentedButton.vala ../lib/Widgets/SettingsList.vala ../lib/Widgets/SettingsPage.vala ../lib/Widgets/SettingsRow.vala ../lib/Widgets/SettingsWindow.vala ../lib/Widgets/SideBar.vala ../lib/Widgets/SwitchBar.vala ../lib/Widgets/Tab.vala ../lib/Widgets/TabPage.vala ../lib/Widgets/TabSwitcher.vala ../lib/Widgets/TextButton.vala ../lib/Widgets/TextField.vala ../lib/Widgets/TimePicker.vala ../lib/Widgets/TintButton.vala ../lib/Widgets/Toast.vala ../lib/Widgets/ViewAux.vala ../lib/Widgets/ViewChooser.vala ../lib/Widgets/ViewDual.vala ../lib/Widgets/ViewMono.vala ../lib/Widgets/ViewSubTitle.vala ../lib/Widgets/ViewSwitcher.vala ../lib/Widgets/ViewTitle.vala ../lib/Widgets/WelcomeScreen.vala ../lib/Main.vala
FAILED: lib/libhelium-1.so.1.p/Models/Application.c lib/libhelium-1.so.1.p/Models/Bin.c lib/libhelium-1.so.1.p/Models/Button.c lib/libhelium-1.so.1.p/Models/ButtonContent.c lib/libhelium-1.so.1.p/Models/Colors.c lib/libhelium-1.so.1.p/Models/Schemes/Content.c lib/libhelium-1.so.1.p/Models/Schemes/Default.c lib/libhelium-1.so.1.p/Models/Schemes/Monochrome.c lib/libhelium-1.so.1.p/Models/Schemes/Muted.c lib/libhelium-1.so.1.p/Models/Schemes/Scheme.c lib/libhelium-1.so.1.p/Models/Schemes/Vibrant.c lib/libhelium-1.so.1.p/Models/View.c lib/libhelium-1.so.1.p/Models/Window.c lib/libhelium-1.so.1.p/Utils/Color.c lib/libhelium-1.so.1.p/Utils/Color/ARGB.c lib/libhelium-1.so.1.p/Utils/Color/CAM16.c lib/libhelium-1.so.1.p/Utils/Color/GdkRGBA.c lib/libhelium-1.so.1.p/Utils/Color/HCT/CriticalPlanes.c lib/libhelium-1.so.1.p/Utils/Color/HCT/HCT.c lib/libhelium-1.so.1.p/Utils/Color/HCT/HCTSolver.c lib/libhelium-1.so.1.p/Utils/Color/Hexcode.c lib/libhelium-1.so.1.p/Utils/Color/LAB.c lib/libhelium-1.so.1.p/Utils/Color/LCH.c lib/libhelium-1.so.1.p/Utils/Color/RGB.c lib/libhelium-1.so.1.p/Utils/Color/XYZ.c lib/libhelium-1.so.1.p/Utils/Desktop.c lib/libhelium-1.so.1.p/Utils/Ensor/Ensor.c lib/libhelium-1.so.1.p/Utils/Ensor/Quantize/Quantizer.c lib/libhelium-1.so.1.p/Utils/Ensor/Quantize/QuantizerCelebi.c lib/libhelium-1.so.1.p/Utils/Ensor/Quantize/QuantizerMap.c lib/libhelium-1.so.1.p/Utils/Ensor/Quantize/QuantizerResult.c lib/libhelium-1.so.1.p/Utils/Ensor/Quantize/QuantizerWsmeans.c lib/libhelium-1.so.1.p/Utils/Ensor/Quantize/QuantizerWu.c lib/libhelium-1.so.1.p/Utils/Ensor/Score.c lib/libhelium-1.so.1.p/Utils/Math.c lib/libhelium-1.so.1.p/Utils/Misc.c lib/libhelium-1.so.1.p/Utils/Portal.c lib/libhelium-1.so.1.p/Utils/ViewingConditions.c lib/libhelium-1.so.1.p/Widgets/AboutWindow.c lib/libhelium-1.so.1.p/Widgets/AppBar.c lib/libhelium-1.so.1.p/Widgets/ApplicationWindow.c lib/libhelium-1.so.1.p/Widgets/Avatar.c lib/libhelium-1.so.1.p/Widgets/Badge.c lib/libhelium-1.so.1.p/Widgets/Banner.c lib/libhelium-1.so.1.p/Widgets/BottomBar.c lib/libhelium-1.so.1.p/Widgets/Chip.c lib/libhelium-1.so.1.p/Widgets/ChipGroup.c lib/libhelium-1.so.1.p/Widgets/ContentBlock.c lib/libhelium-1.so.1.p/Widgets/ContentBlockImage.c lib/libhelium-1.so.1.p/Widgets/ContentBlockImageCluster.c lib/libhelium-1.so.1.p/Widgets/ContentList.c lib/libhelium-1.so.1.p/Widgets/DatePicker.c lib/libhelium-1.so.1.p/Widgets/Dialog.c lib/libhelium-1.so.1.p/Widgets/DisclosureButton.c lib/libhelium-1.so.1.p/Widgets/EmptyPage.c lib/libhelium-1.so.1.p/Widgets/FillButton.c lib/libhelium-1.so.1.p/Widgets/IconicButton.c lib/libhelium-1.so.1.p/Widgets/MiniContentBlock.c lib/libhelium-1.so.1.p/Widgets/ModifierBadge.c lib/libhelium-1.so.1.p/Widgets/NavigationRail.c lib/libhelium-1.so.1.p/Widgets/OutlineButton.c lib/libhelium-1.so.1.p/Widgets/OverlayButton.c lib/libhelium-1.so.1.p/Widgets/PillButton.c lib/libhelium-1.so.1.p/Widgets/SegmentedButton.c lib/libhelium-1.so.1.p/Widgets/SettingsList.c lib/libhelium-1.so.1.p/Widgets/SettingsPage.c lib/libhelium-1.so.1.p/Widgets/SettingsRow.c lib/libhelium-1.so.1.p/Widgets/SettingsWindow.c lib/libhelium-1.so.1.p/Widgets/SideBar.c lib/libhelium-1.so.1.p/Widgets/SwitchBar.c lib/libhelium-1.so.1.p/Widgets/Tab.c lib/libhelium-1.so.1.p/Widgets/TabPage.c lib/libhelium-1.so.1.p/Widgets/TabSwitcher.c lib/libhelium-1.so.1.p/Widgets/TextButton.c lib/libhelium-1.so.1.p/Widgets/TextField.c lib/libhelium-1.so.1.p/Widgets/TimePicker.c lib/libhelium-1.so.1.p/Widgets/TintButton.c lib/libhelium-1.so.1.p/Widgets/Toast.c lib/libhelium-1.so.1.p/Widgets/ViewAux.c lib/libhelium-1.so.1.p/Widgets/ViewChooser.c lib/libhelium-1.so.1.p/Widgets/ViewDual.c lib/libhelium-1.so.1.p/Widgets/ViewMono.c lib/libhelium-1.so.1.p/Widgets/ViewSubTitle.c lib/libhelium-1.so.1.p/Widgets/ViewSwitcher.c lib/libhelium-1.so.1.p/Widgets/ViewTitle.c lib/libhelium-1.so.1.p/Widgets/WelcomeScreen.c lib/libhelium-1.so.1.p/Main.c lib/libhelium-1.h lib/libhelium-1.vapi lib/He-1.gir 
valac -C --debug --debug --define=LINUX --abi-stability --target-glib=2.50 --gresourcesdir /home/rleinardi/Workspace/Misc/libhelium/_build/demo/data --pkg posix --pkg gtk4 --pkg gee-0.8 --pkg gobject-2.0 --target-glib 2.50 --pkg glib-2.0 --pkg gio-unix-2.0 --pkg gio-2.0 --color=always --directory lib/libhelium-1.so.1.p --basedir ../lib --library libhelium-1 --header lib/libhelium-1.h --vapi ../libhelium-1.vapi --gir ../He-1.gir --gresources=../data/gresource.xml --gresources=../data/he.gresource.xml ../lib/Models/Application.vala ../lib/Models/Bin.vala ../lib/Models/Button.vala ../lib/Models/ButtonContent.vala ../lib/Models/Colors.vala ../lib/Models/Schemes/Content.vala ../lib/Models/Schemes/Default.vala ../lib/Models/Schemes/Monochrome.vala ../lib/Models/Schemes/Muted.vala ../lib/Models/Schemes/Scheme.vala ../lib/Models/Schemes/Vibrant.vala ../lib/Models/View.vala ../lib/Models/Window.vala ../lib/Utils/Color.vala ../lib/Utils/Color/ARGB.vala ../lib/Utils/Color/CAM16.vala ../lib/Utils/Color/GdkRGBA.vala ../lib/Utils/Color/HCT/CriticalPlanes.vala ../lib/Utils/Color/HCT/HCT.vala ../lib/Utils/Color/HCT/HCTSolver.vala ../lib/Utils/Color/Hexcode.vala ../lib/Utils/Color/LAB.vala ../lib/Utils/Color/LCH.vala ../lib/Utils/Color/RGB.vala ../lib/Utils/Color/XYZ.vala ../lib/Utils/Desktop.vala ../lib/Utils/Ensor/Ensor.vala ../lib/Utils/Ensor/Quantize/Quantizer.vala ../lib/Utils/Ensor/Quantize/QuantizerCelebi.vala ../lib/Utils/Ensor/Quantize/QuantizerMap.vala ../lib/Utils/Ensor/Quantize/QuantizerResult.vala ../lib/Utils/Ensor/Quantize/QuantizerWsmeans.vala ../lib/Utils/Ensor/Quantize/QuantizerWu.vala ../lib/Utils/Ensor/Score.vala ../lib/Utils/Math.vala ../lib/Utils/Misc.vala ../lib/Utils/Portal.vala ../lib/Utils/ViewingConditions.vala ../lib/Widgets/AboutWindow.vala ../lib/Widgets/AppBar.vala ../lib/Widgets/ApplicationWindow.vala ../lib/Widgets/Avatar.vala ../lib/Widgets/Badge.vala ../lib/Widgets/Banner.vala ../lib/Widgets/BottomBar.vala ../lib/Widgets/Chip.vala ../lib/Widgets/ChipGroup.vala ../lib/Widgets/ContentBlock.vala ../lib/Widgets/ContentBlockImage.vala ../lib/Widgets/ContentBlockImageCluster.vala ../lib/Widgets/ContentList.vala ../lib/Widgets/DatePicker.vala ../lib/Widgets/Dialog.vala ../lib/Widgets/DisclosureButton.vala ../lib/Widgets/EmptyPage.vala ../lib/Widgets/FillButton.vala ../lib/Widgets/IconicButton.vala ../lib/Widgets/MiniContentBlock.vala ../lib/Widgets/ModifierBadge.vala ../lib/Widgets/NavigationRail.vala ../lib/Widgets/OutlineButton.vala ../lib/Widgets/OverlayButton.vala ../lib/Widgets/PillButton.vala ../lib/Widgets/SegmentedButton.vala ../lib/Widgets/SettingsList.vala ../lib/Widgets/SettingsPage.vala ../lib/Widgets/SettingsRow.vala ../lib/Widgets/SettingsWindow.vala ../lib/Widgets/SideBar.vala ../lib/Widgets/SwitchBar.vala ../lib/Widgets/Tab.vala ../lib/Widgets/TabPage.vala ../lib/Widgets/TabSwitcher.vala ../lib/Widgets/TextButton.vala ../lib/Widgets/TextField.vala ../lib/Widgets/TimePicker.vala ../lib/Widgets/TintButton.vala ../lib/Widgets/Toast.vala ../lib/Widgets/ViewAux.vala ../lib/Widgets/ViewChooser.vala ../lib/Widgets/ViewDual.vala ../lib/Widgets/ViewMono.vala ../lib/Widgets/ViewSubTitle.vala ../lib/Widgets/ViewSwitcher.vala ../lib/Widgets/ViewTitle.vala ../lib/Widgets/WelcomeScreen.vala ../lib/Main.vala
error: unable to open `/home/rleinardi/Workspace/Misc/libhelium/_build/lib/libhelium-1.so.1.p/Models/Application.c' for writing
Compilation failed: 1 error(s), 0 warning(s)
[4/102] /usr/local/bin/sass --no-source-map ../subprojects/tau-helium/Helium/gtk-4.0/gtk.scss subprojects/tau-helium/Helium/gtk-4.0/gtk.css
[5/102] /usr/local/bin/sass --no-source-map ../subprojects/tau-helium/Helium/gtk-4.0/gtk-dark.scss subprojects/tau-helium/Helium/gtk-4.0/gtk-dark.css
[6/102] /usr/local/bin/sass ../subprojects/tau-helium/Helium/gtk-3.0/gtk-dark.scss subprojects/tau-helium/Helium/gtk-3.0/gtk-dark.css
[7/102] /usr/local/bin/sass ../subprojects/tau-helium/Helium/gtk-3.0/gtk.scss subprojects/tau-helium/Helium/gtk-3.0/gtk.css
ninja: build stopped: subcommand failed.


### Hardware Info

Not relevant.

tauOS Application Starter

It would developers a lot if there was a template for tauOS apps. This would ship our libraries (libtau, libhelium, app sync etc..) as well as defaults that we consider sane.

AboutWindow has no close button

What Happened?

AboutWindow has no close button
image

Steps to Reproduce

Use AboutWindow

Expected Behavior

AboutWindow has an x button to close it

OS Version

Ultramarine Linux

Software Version

Latest release (I have run all updates)

Log Output

No response

Hardware Info

No response

libhelium starter tutorials

Essentially a comprehensive set of tutorials on designing and building beautiful libhelium apps. (Probably by example.)

This would probably be primarily focused on our Kotlin effort, which is targeted as the "flagship" platform.

ERROR: File 'doc/libhelium' could not be found on Ubuntu 22.04 with release 1.5.15 or main branch

What Happened?

Can't build release 1.5.15 or the current main branch on Ubuntu 22.04

Steps to Reproduce

On Ubuntu 22.04 LTS

  1. Install the dependencies: sudo apt --quiet install --yes npm meson libgee-0.8-dev valac valadoc && sudo npm i -g sass
  2. Clone the repo: git clone https://github.com/tau-OS/libhelium.git
  3. Build: cd libhelium && meson _build --prefix=/usr
  4. Install: sudo ninja -v -C _build install

Expected Behavior

It should install correctly with no errors.

OS Version

Other Linux

Software Version

Compiled from git

Log Output

ERROR: File 'doc/libhelium' could not be found
FAILED: meson-install 
/usr/bin/meson install --no-rebuild
ninja: build stopped: subcommand failed.

full log

Hardware Info

Nothing special: AMD Ryzen 7 5800X.

He.BottomBar - Center Widget can't be a menu if one is given

Problem

The middle widget can't have a menu attached to it currently if one is given.

Proposal

If a menu is added to the center widget, display it by transforming the center widget into a menubutton, otherwise, just show title and subtitle labels.

Autogenerated libhelium bindings for Kotlin

Basically as the title says. At the moment, we'll be using gtk-kn for this, which has a mature binding generator.

This is mostly done already, albeit we're also waiting on upstream on whether they would like them to be upstreamed.

DX Metaissue

As libhelium's feature freeze for tauOS 1 approaches, we plan to prioritize work related to DX. Think documentation, tooling, examples, cleanliness, and more.

This issue will serve as a tracker for DX related work, as well as a discussion for current gaps in libhelium's DX (in addition to the #dev channel in our Discord).

libhelium Kotlin DSL

Essentially a DSL for building libhelium apps in a reactive and declarative fashion. We hope to significantly ease the developer experience especially for with little native/GTK experience, hopefully providing the easiest way to build beautiful native desktop applications on Linux and other platforms.

gtk-kt (now dead) has quite a bit of work on a Gtk DSL, which we could port over to gtk-kn. Depends on #25.

Add gtk-kn support to main

Problem

Currently, compilation of gtk-kn with libhelium main breaks.

Excuse the low quality image:
image

The v1.5.17 branch works, and is the version gtk-kn has pinned in their CI. Using the latest release, v1.5.18, and the main branch, results in the above errors.

Proposal

Fix any errors related to the problem and make sure the gir:run task of gtk-kn succeeds.

Kotlin specific documentation

If we want to make Kotlin (and the framework/DSL we build on it) our flagship developer experience, we're going to need some damn good documentation. Depends on #26 and #27.

He.TabBar & He.Tab

Problem

todo

Proposal

todo

Prior Implementations (Optional)

No response

He.BottomBar - Adding child with position directly on ui fails

What Happened?

When you add a child using typing to set its position, like below, it fails.

<child>
  <object class="HeBottomBar">
    <property name="collapse_actions">0</property>
    <child type="left">
      <object class="HeIconicButton" />
    </child>
  </object>
</child>

Steps to Reproduce

When you try to add a child, it fails, so have to add childs directly.

Expected Behavior

Should be able to add children to a bottombar using typing without fail.

OS Version

1.x (Martin Perl)

Software Version

Compiled from git

Log Output

N/A

Hardware Info

N/A

All libhelium apps crash

What Happened?

All libhelium apps that use HeApplications crash on startup

Steps to Reproduce

  1. Install libhelium, preferrably with the demo
  2. Run the demo

Expected Behavior

The apps run properly

OS Version

Other Linux

Software Version

Latest release (I have run all updates)

Log Output

(process:59642): GLib-GIO-DEBUG: 20:00:57.897: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
**
GLib:ERROR:../glib/gvariant-serialiser.c:1369:g_variant_serialised_n_children: code should not be reached
Bail out! GLib:ERROR:../glib/gvariant-serialiser.c:1369:g_variant_serialised_n_children: code should not be reached
fish: Job 1, 'G_MESSAGES_DEBUG=all accel' terminated by signal SIGABRT (Abort)

Hardware Info

Ultramarine Linux 37 (GNOME), NVIDIA graphics on X11

Mismatch with the corresponding parameter in the supertype

What Happened?

The corresponding parameter in the supertype 'ApplicationWindow' of the function setModal() of ApplicationWindow and Window is named modal instead of value. This may cause problems when calling this function with named arguments.

Steps to Reproduce

Build the bindings generated by gtk-kn.

Also, check the He GIR:

		<method name="set_modal" c:identifier="he_window_set_modal">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="He.Window" c:type="HeWindow*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</method>

and compare it with the GTK GIR:

      <method name="set_modal"
              c:identifier="gtk_window_set_modal"
              glib:set-property="modal">
        <attribute name="org.gtk.Method.set_property" value="modal"/>
        <doc xml:space="preserve"
             filename="../gtk/gtkwindow.c"
             line="2455">Sets a window modal or non-modal.

Modal windows prevent interaction with other windows in the same
application. To keep modal dialogs on top of main application windows,
use [[email protected]_transient_for] to make the dialog transient
for the parent; most window managers will then disallow lowering the
dialog below the parent.</doc>
        <source-position filename="../gtk/gtkwindow.h" line="174"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../gtk/gtkwindow.c"
                 line="2457">a `GtkWindow`</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="modal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../gtk/gtkwindow.c"
                 line="2458">whether the window is modal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>

parameter name is "value" for He and "modal" for GTK.

Expected Behavior

The parameter name should match and no warning should be shown when building.

OS Version

Other Linux

Software Version

Latest release (I have run all updates)

Log Output

w: file:///home/leinardi/Workspace/gitlab/gtk-kn/bindings/he/src/nativeMain/kotlin/org/gtkkn/bindings/he/ApplicationWindow.kt:50:39 The corresponding parameter in the supertype 'ApplicationWindow' is named 'modal'. This may cause problems when calling this function with named arguments.
w: file:///home/leinardi/Workspace/gitlab/gtk-kn/bindings/he/src/nativeMain/kotlin/org/gtkkn/bindings/he/Window.kt:62:39 The corresponding parameter in the supertype 'Window' is named 'modal'. This may cause problems when calling this function with named arguments.

He.TabBar & He.Tab

Problem

No tabbar widget that aligns with Helium design language

Proposal

Add one following these mockups:

  • Textual Mode
    textual tabbar(1)

  • #9
    icon tabbar

Have some design guidelines;

  • general height is 50px

  • 6 of spacing between each tab in textual mode, starts with a 6px margin, and the plus button at the end creates more; and it sits below an He.AppBar

  • in icon mode, it's all centered and it's more focused on being a navigation component in He.Album folded mode, and sits above a He.BottomBar; overlay buttons can overlay it; any He.ViewSwtchers are transformed into these

Prior Implementations (Optional)

No response

libhelium apps crash on about or settings windows

What Happened?

As the title indicates. Nothing else about it.

Steps to Reproduce

  1. Compile Enigma or similar apps from source
  2. Open them
  3. Click the about or settings buttons

Expected Behavior

The action assigned to the button (presumably opening the He.AboutWindow or He.SettingsPage with parameters passed by the apps) should work.

OS Version

Other Linux

Software Version

Compiled from git

Log Output

(com.fyralabs.Enigma:7442): Gtk-WARNING **: 09:36:09.430: Unknown key gtk-button-images in /home/alyxia/.config/gtk-4.0/settings.ini

(com.fyralabs.Enigma:7442): Gtk-WARNING **: 09:36:09.430: Unknown key gtk-menu-images in /home/alyxia/.config/gtk-4.0/settings.ini

(com.fyralabs.Enigma:7442): Gtk-WARNING **: 09:36:09.430: Unknown key gtk-toolbar-style in /home/alyxia/.config/gtk-4.0/settings.ini
NORMAL: 400.000000
LIGHT: 300.000000
HEAVY: 700.000000
(com.fyralabs.Enigma:7442): Gtk-CRITICAL **: 09:36:09.536: gtk_box_remove: assertion 'gtk_widget_get_parent (child) == (GtkWidget *)box' failed

(com.fyralabs.Enigma:7442): Gtk-CRITICAL **: 09:36:09.536: gtk_box_prepend: assertion 'gtk_widget_get_parent (child) == NULL' failed

(com.fyralabs.Enigma:7442): Gtk-CRITICAL **: 09:36:09.536: gtk_box_remove: assertion 'gtk_widget_get_parent (child) == (GtkWidget *)box' failed

(com.fyralabs.Enigma:7442): Gtk-CRITICAL **: 09:36:09.536: gtk_box_append: assertion 'gtk_widget_get_parent (child) == NULL' failed

(com.fyralabs.Enigma:7442): Gtk-CRITICAL **: 09:36:20.379: gtk_widget_set_parent: assertion '_gtk_widget_get_parent (widget) == NULL' failed
**
Gtk:ERROR:../gtk/gtk/gtkcssnode.c:1370:gtk_css_node_validate: assertion failed: (cssnode->parent == NULL)
Bail out! Gtk:ERROR:../gtk/gtk/gtkcssnode.c:1370:gtk_css_node_validate: assertion failed: (cssnode->parent == NULL)
[1]    7442 IOT instruction (core dumped)  builddir/com.fyralabs.Enigma

Hardware Info

Issue is experienced on Arch

libhelium GI documentation

Autogenerated documentation with gidoc, which is more language agnostic and cleaner than Valadoc. This is going to require upstream valac/valadoc patches, which I've been working on.

He.BottomBar - Have to explicitly say collapse_actions is false

What Happened?

When you add a He.BottomBar, nothing shows on either side when not using it inside a He.Album, and that's because one has to explicitly say collapse_actions is false for items to appear.

Steps to Reproduce

Add a He.BottomBar to your app, with actions on either side

See that none show up, because it's expecting collapse_actions to be either true or false from somewhere.

Expected Behavior

The widget shoudl default to showing actions if not inside a He.Album

OS Version

1.x (Martin Perl)

Software Version

Latest release (I have run all updates)

Log Output

N/A

Hardware Info

N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.