Commit Graph

34 Commits

Author SHA1 Message Date
5460855ea4 Implemented a Windows-specific theme detection path with High Contrast safeguards, including helpers to detect HC mode, read Windows system theme preference from the registry, and gate native titlebar dark mode updates when HC is active. Also added DWM header usage for native titlebar APIs.
Added a unified theme application pipeline via fe_apply_theme_for_mode() and fe_apply_theme_to_toplevel(), and routed auto-mode refresh logic through it so palette + GTK input styling are applied consistently from one place.
Switched startup and settings-apply flows to use the unified theming function, replacing direct palette-only calls so system-mode detection → theme apply is consistent across initialization and preferences changes.
Applied native titlebar updates when top-level windows are shown and during setup reapply across open sessions, and wired Windows builds to link dwmapi in both Meson and MSVC project files.
2026-02-16 20:26:45 -07:00
ebb9aa48ae Added GTK2 compatibility macros in fe-gtk.h so calls to gtk_widget_set_hexpand() / gtk_widget_set_vexpand() become no-ops when !HAVE_GTK3, fixing the GTK2 implicit-declaration build failures introduced by GTK3-oriented layout code.
Kept the macros warning-safe using (void) casts and G_STMT_START/G_STMT_END, so they compile cleanly in strict warning configurations.
2026-02-16 19:33:50 -07:00
deepend-tildeclub
fb952dd209 Add GTK version check in fe-gtk.h
Added a fallback in the GTK frontend header to derive HAVE_GTK3 from GTK_MAJOR_VERSION when the macro is missing, so Windows GTK3 builds don’t compile GTK2-only code paths by mistake.
2026-02-04 15:34:24 -07:00
6c17f4bc16 Added the GTK3 InputStyle abstraction and updated input style/chanview declarations to avoid direct GtkStyle usage in GTK3 builds.
Updated input style initialization and kept GTK2-only RC parsing while applying GTK3 palette styling for the channel tree via CSS-aware paths.
2026-01-30 18:19:01 -07:00
2b98ebc544 HEXCHAT -> ZOITECHAT 2026-01-25 16:13:47 -07:00
8c3986ffe0 fix auto dark/light mode on windows. 2026-01-18 10:46:41 -07:00
7279e3592f - Replaced the dark mode checkbox with an Auto/Dark/Light selector in Preferences → Colors and added the new mode labels/setting metadata to match the combo box UI.
- Updated palette handling to respect the effective dark mode (including auto) when saving colors, applying themes, and refreshing user list styling.
- Added auto dark-mode tracking that listens to system theme changes and reapplies palette/styles live when Auto is selected, so updates happen without restart (including channel list styling updates via setup_apply_real).
- Synced the stored auto dark-mode state when preferences are applied, keeping Auto mode consistent after manual changes.
- Exposed a helper for keeping the Auto state synchronized from the GTK layer to preferences handling.
2026-01-17 23:09:38 -07:00
8d275ddb31 - Added dark mode mode constants, config storage as an integer, and a helper to resolve Auto/Dark/Light using system preferences where available.
- Replaced the dark mode checkbox with an Auto/Dark/Light color mode selector and ensured palette edits use the resolved mode.
- Applied the resolved color mode consistently across palette saving and GTK styling in the user list and channel tree/theme application paths.
2026-01-17 22:52:32 -07:00
0601be026c - Converted text background loading to build Cairo surfaces directly from pixbufs for renderer use.
- Updated the xtext renderer to accept Cairo background surfaces and dropped the GtkStyle attach during realize to keep rendering Cairo/Pango-focused.
- Switched background surface ownership and cleanup to use cairo_surface_t across the shared state and settings update path.
2026-01-17 18:19:00 -07:00
4683ef705b new name after fork 2026-01-05 23:12:38 -07:00
TingPing
7363bc03f2 Remove r from mode buttons
No network can agree on what mode r actually
means so we can't have nice things.

Closes #1287
2015-04-21 16:07:12 -04:00
TingPing
6ef7298870 Remove unnecessary use of void* 2014-12-31 03:56:36 -05:00
TingPing
aeb5d15871 More consistently include config.h 2014-12-17 18:21:10 -05:00
Arnavion
8062bce835 Fix some obvious type warnings. 2014-12-04 04:06:38 -08:00
TingPing
c3c6b46230 Clean up includes for gettext
It is always enabled.
2014-06-21 23:10:18 -04:00
TingPing
b8c02f71d9 win32: Use config.h instead of config-win32.h 2014-06-04 10:30:18 -04:00
TingPing
f43b7524e0 osx: Properly use app menu
Mentioned in #994
2014-05-27 02:58:44 -04:00
TingPing
22b5affbe6 Use GRegex for channel list search
This adds support for Windows
2014-02-15 11:50:22 -05:00
TingPing
ce09cb4a91 Update most deprecated gtk functions 2014-01-18 14:47:17 -05:00
TingPing
7b0acb2b44 Build with gtk-mac-integration
- Use HexChat logo for dock icon
- Use appmenu (not finished)
2014-01-14 22:14:27 -05:00
TingPing
e8d4f3f848 Properly set away and fullscreen menu items 2013-10-27 13:24:15 -04:00
TingPing
eb93130cd3 Remove gtkspell support 2013-10-03 16:23:46 -04:00
TingPing
7ba2f1f17f Topic bar improvements
- Don't show on server tab
- Don't show unavailable modes
- Remove less used modes and add more common ones
- Use proper case for buttons
2013-10-03 05:01:15 -04:00
TingPing
ae04663aa9 First round of using GTK accessor functions
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.
2013-09-20 17:24:39 -04:00
TingPing
b0b8f40791 Replace search window with a searchbar 2013-09-15 02:51:35 -04:00
Berke Viktor
9c49254abd Only include top level includes from GTK+, GLib and GDK-PixBuf 2013-04-02 20:39:37 -07:00
Berke Viktor
0f20423455 Consistent header macros everywhere 2013-04-01 01:02:03 +02:00
Berke Viktor
3c1bd3cff0 Supposed fix for license issues
I have no clue what to put here so I'll just use what the About dialog
provides (unless specified otherwise in the file)
2013-03-31 21:45:05 +02:00
RichardHitt
f5631b2e22 Redesign the Ban List window. Closes Issues #303, #342, #427
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
2013-03-20 15:10:30 -07:00
Berke Viktor
a98dc18d55 Ignore generated config.h properly on Unix 2012-10-27 01:26:32 +02:00
Berke Viktor
1f1c76a5d8 Initial rebranding in code 2012-07-11 22:41:15 +02:00
Berke Viktor
13ee029364 some more multiplatform support 2011-12-11 18:04:35 +01:00
berkeviktor@aol.com
d03d6e606b add wdk changes to named branch 2011-02-28 18:59:32 +01:00
berkeviktor@aol.com
4a6ceffb98 add xchat r1489 2011-02-24 04:14:30 +01:00