Project

General

Profile

Actions

Feature #1130

closed

Migrate launcher UI to a pigtk widget.

Added by Hammel 3 months ago. Updated about 2 months ago.

Status:
Closed
Priority:
Immediate
Assignee:
Category:
General
Target version:
Start date:
17 Apr 2024
Due date:
% Done:

100%

Estimated time:
Severity:
01 - Critical

Description

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

Actions #1

Updated by Hammel 3 months 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 3 months 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 3 months 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 3 months ago

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

Updated by Hammel 2 months 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) (won't implement)

Need to implement row and page changes APIs properly.

Actions #6

Updated by Hammel 2 months 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
Actions #7

Updated by Hammel about 2 months ago

  • Status changed from In Progress to Closed
  • % Done changed from 70 to 100

All features are implemented and demo'd in the pigtk app.

All code committed and pushed.

Closing issue.

Actions

Also available in: Atom PDF