Removed GTK2 compatibility shims from headers (fe-gtk.h, gtkutil.h), leaving direct GTK3-facing declarations/includes only (and platform-specific guards unrelated to GTK2 kept as-is).
Cleaned GTK2-specific comments/wording now that behavior is GTK3-native (menu accelerator note and emoji/userlist comment blocks).
Updated multiple GTK UI layout paths (setup, server list, notify, ban list, join dialog, and menu) to use the new helpers for GTK3-safe box/grid creation and attachment behavior.
Added GTK3-safe attach option definitions and updated helper signatures to avoid GTK2-only types/macros in public headers.
Updated gtkutil grid-attachment helpers to use the new attach option type in alignment/expansion logic.
Switched banlist grid attachments to the new helper option flags for GTK3 builds.
Introduced a servlist table-attach helper and applied it across servlist UI attachments to keep GTK_FILL/GTK_EXPAND confined to GTK2-only paths while setting GTK3 alignment/margins explicitly.
Updated GTK helper usages to reference the new ICON_* (and label) macros so GTK3 builds no longer pass stock IDs to button/icon helpers or dialogs, including banlist buttons, DCC windows, rawlog actions, notify dialog/buttons, pevent dialog buttons, tray menu items, and join dialog image helper usage.
Switched the GTK frontend build logic to select GTK2/GTK3 dependencies and emit corresponding preprocessor defines.
Added GTK3 GtkGrid/alignment handling and GTK3 GtkBox replacements for the channel list controls while preserving GTK2 table behavior behind guards.
Switched the ban list layout to use GtkGrid under GTK3 with GTK2 table fallback for checkbox placement.
Updated main GTK UI layouts to use GTK3 GtkGrid/GtkBox and alignment/attachment logic (quit dialog, topic bar, search/entry, chanview placement, main window table) while keeping GTK2 behavior via HAVE_GTK3 guards.
- Removes need to check for malloc failure
- Removes need for NULL checks on free
- Adds checks for integer overflows
- Removes some extra memset calls
- Removes chance of mixing libc and glib malloc/free
This is the first step to build with GSEAL_ENABLE
setup.c uses a deprecated fontchooser,
chanview-tabs.c didn't like the conversion, and
I am waiting to do some work on xtext.c before
converting it.
This is a combination of 18 commits.
The first commit's message is:
Here is the initial banlist branch of RichardHitt/hexchat.
Changed files are only src/fe-gtk/{banlist.c,fe-gtk.h}.
This version works and contains my first efforts at selective
sensitization of radio buttons and control buttons.
From this point I intend to undertake a stepwise redesign.
Step 1 will be to make the existing banlist code work for
multiple simultaneous banlist windows (for different channels,
obviously). It will be a hackathon with the only goal of getting
it working.
Step 2 will be the objectization and alpha-stage tidying-up of
all the terrible looking stuff I will have done in Step 1.
This is the 2nd commit message:
Here's the post-Step-1 commit. It works for multiple banlist windows.
Note particularly what I've done to banlist.h.
Note that for many functions in banlist.c the argument is now
a banlist_info *, rather than a session *.
Note in banlist.c the initialization of array modes[] which
contains driving information for the checkboxes.
Of course those checkboxes aren't yet implemented. Maybe in Step 2
I will change to checkboxes from radio buttons; but definitely I will
change to letting modes[] drive processing.
This is the 3rd commit message:
Converted to checkboxes. Much additional work.
Note that the infrastructure for Auto-invite is not yet
present in the hexchat tree. I'm nearly done with banlist,
I think!
This is the 4th commit message:
Fleshed out 'invite'. Tagged masks uniformly, e.g. (b) (e) (I).
General cleanup, nearly at the point of beta quality.
This is the 5th commit message:
Added fourth mode type: quiet. Did lots and lots of cleanup. Beta-ready?
This is the 6th commit message:
Get the banlist timestamps properly sortable.
This is the 7th commit message:
Redesign the supports_foo() routines. Now they're responsible for setting
the flags in ->capable, ->readable, ->writeable.
This is the 8th commit message:
Deleted a couple of RBH comments.
This is the 9th commit message:
Now the ESC key will close the banlist window.
This is the 10th commit message:
Fix the fe-text occurrence of fe_add_ban_list().
This is the 11th commit message:
Fixed also fe_ban_list_end() and removed fe_is_banwindow().
This is the 12th commit message:
Use old-style initialization for array of structures modes[]
This is the 13th commit message:
Oops, incomplete regression of modes[] initialization. This fixes.
This is the 14th commit message:
Fixed strptime buy implementing a special version here.
Fixed column width concerns by setting resizable and autosize.
This is the 15th commit message:
Get rid of testing line.
This is the 16th commit message:
Changed to gtkutil_destroy_on_esc ()
This is the 17th commit message:
Remove no-longer-used functnion
This is the 18th commit message:
Minor cleanups to banlist.c, banlist.h
Please enter the commit message for your changes. Lines starting
with '#' will be ignored, and an empty message aborts the commit.
Author: RichardHitt <rbh00@netcom.com>
Committer: Richard Hitt <rbh00@f17.rbh00.pacbell.net>
Not currently on any branch.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: src/common/fe.h
modified: src/common/hexchat.h
modified: src/common/inbound.c
modified: src/common/modes.c
modified: src/common/proto-irc.c
modified: src/common/server.c
modified: src/fe-gtk/banlist.c
modified: src/fe-gtk/banlist.h
modified: src/fe-gtk/fe-gtk.c
modified: src/fe-gtk/fe-gtk.h
modified: src/fe-gtk/maingui.c
modified: src/fe-text/fe-text.c