Feature #1130


Migrate launcher UI to a pigtk widget.

Added by Hammel about 1 month ago. Updated 11 days ago.

In Progress
Target version:
Start date:
17 Apr 2024
Due date:
% Done:


Estimated time:
01 - Critical


The widget will allow paging, and can be re-used in a videofe rewrite.

Actions #1

Updated by Hammel about 1 month ago

The launcher is just an icontable widget.

The icon table should have the following apis.

  • gtk_icontable_set_tablesize(widget, rows, cols)
  • gtk_icontable_set(widget, GSList *)
    • list data = ICONTABLE_DATA_T (icon path, title)
      struct _icontable_t {
      char *icon;
      char *title;
      } ICONTABLE_T;
  • GtkWidget *gtk_icontable_new(guint rows, guint cols);
  • void gtk_icontable_press( GtkWidget *icontable, int x, int y, int highlight );
  • void gtk_icontable_page_change( GtkWidget *widget, gint amount );
  • void gtk_icontable_row_change( GtkWidget *widget, gint amount );
  • GSList *gtk_icontable_get_cell( GtkWidget *icontable );
  • void gtk_icontable_set_cellpad( GtkWidget *widget, guint size );
Actions #2

Updated by Hammel 29 days ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 20

First implementation committed but it's actually untested and likely has a number of bugs.

Actions #3

Updated by Hammel 21 days ago

  • % Done changed from 20 to 80
Initial implementation has been tested and pushed.
Issues still to be resolved.
  1. Better _next_cell, _next_row and _next_page handling.
    1. Extend demo app to show these.
  2. Add a user supplied data field to GtkIconCell structure.
  3. Fix resize paint updates.
Actions #4

Updated by Hammel 21 days ago

  • Severity changed from 03 - Medium to 01 - Critical
Actions #5

Updated by Hammel 15 days ago

Need to handle paging better. When you cell fw or bw to the next page the whole widget must be updated so all labels are updated properly.

Need an option for:
  1. Disabling label overlays
  2. Setting label color (via gtkrc and API)
  3. Setting bg color (overriding gtkrc)

Need to implement row and page changes APIs properly.

Actions #6

Updated by Hammel 11 days ago

  • % Done changed from 80 to 70
More features to work on.
  1. Changing pages when using manual advance must redraw all cells, not just the one.
  2. Implement row change like cell change.
  3. Implement page change like cell change

Also available in: Atom PDF