The purpose of this interactive test is to be able to
prototype new features for CcPanel without having to
adapt existing panels.
Three test panels were added as part of this initial
patch:
* Dynamic panels: panel exercising the ability to
show and hide itself at runtime.
* Header: panel that embeds a header widget.
* Static Initializer: panel that sets a static init
function to run at startup.
This commit does a few different bit interwined things to the
build steps:
* Make libtestshell and gnome-control-center share more of the
variables and resouces;
* Use 'dependencies' instead of 'link_with' for libshell;
* Add some visual marks as comments;
Add documentation comments to the public functions, which
has the additional benefit of adding visual marks for
public functions and making it easier to navigate through
this file.
In order to introduce test panels, which are a nice to have
feature before actually moving to working on the custom
widget on sidebar feature, add a way to override the panels
vtable and load whatever panels we might want.
We will allow test panels to be added, so the vtable must
be overridable. The first step into making it overridable
is exposing the actual vtable struct.
When changing the display mode, the apply button does not appear if the
current mode and new mode differ only in their interlaced flag.
The display mode comparison function now takes the interlaced flag into
account.
The code to lookup or insert items into the combobox had a few issues.
It would assume that the items are sorted, causing existing items to not
be found and be inserted instead. It also would simply forget to insert
an item if it was larger than all existing items.
This code is now changed to iterate over all items, finding the best
insertion point in the process (next item has a larger value, or the
values are not increasing anymore). The item will only be inserted if it
has not been found.
Fixes#261
It's currently just added whenever cheese is enabled, however that should
be already an indirect dependency. There is no need for it to explicitly
to be explicitly linked here.
And same goes for CI Docker files, the dependency will be indirectly
installed through cheese anyway.
Same dog, different collar. The UI has been ported 1:1 to GTK+, using
GtkBuilder, CSS and event controllers fairly reduced the amount of code
needed for this.
It also allows us to stop initializing clutter-gtk across the several
executables.