Commit Graph

158 Commits

Author SHA1 Message Date
2b6fc7dbe5 Added GTK3 icon-name handling around entry error icon updates in the server list UI while keeping stock icon calls for non-GTK3 builds.
Updated search UI entry icon handling to use GTK3 icon-name APIs with GTK2 fallbacks for stock icons.
2026-01-23 12:57:52 -07:00
99e20751a8 Converted palette storage to GdkRGBA with GTK2-guarded helpers, including RGB16 conversion support for shared consumers and dark-mode palette handling.
Updated setup color selection and styling to use RGBA-aware GTK3 overrides/CSS while preserving GTK2 behavior in guarded paths.
Switched tree view color models/renderers and other palette consumers (user list, notify, DCC, menus, spell entry, input style) to RGBA-aware types/properties with shared RGB16 conversion usage.
2026-01-19 22:50:17 -07:00
01108d7c2f Aligned the GTK3 quit dialog checkbox to fill horizontally and stay vertically centered within the grid layout, keeping GTK2 behavior unchanged. 2026-01-19 22:17:57 -07:00
a5f97fc018 Added mg_box_new to centralize GTK3/GTK2 GtkBox creation with homogeneous/spacing handling in maingui.c.
Updated main GUI layout construction to use mg_box_new for topic bars, text areas, meters, search/entry bars, dialog buttons, and generic tabs to keep GTK3-friendly box creation consistent while preserving GTK2 behavior.
2026-01-19 20:11:07 -07:00
91cdc28846 Added a chanlist label alignment helper and reused it for the filter labels to keep GTK3/GTK2 alignment behavior consistent.
Added a main GUI alignment helper and applied it to the quit dialog label alignment path for GTK3/GTK2 compatibility
2026-01-19 19:37:03 -07:00
2470954006 Added a Meson option to enable building the GTK frontend against GTK 3.
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.
2026-01-19 19:26:29 -07:00
8c3986ffe0 fix auto dark/light mode on windows. 2026-01-18 10:46:41 -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
cf41615cb3 - Reworked GTK window snapshotting in the main GUI to capture into cairo surfaces and convert via gdk_pixbuf_get_from_surface.
- Added a Cairo surface → RGBA pixbuf conversion helper that unpremultiplies ARGB32 data for GTK2 compatibility while keeping window snapshots Cairo-based.
- Updated window snapshotting to use the new Cairo surface conversion instead of gdk_pixbuf_get_from_surface
2026-01-17 22:25:12 -07:00
c1f855c2ab - Updated main GUI color helpers and tab palette generation to use XTextColor, and simplified drag icon snapshotting to use gdk_pixbuf_get_from_window with a null guard.
- Added pixbuf-based cairo surface capture for xtext window scrolling with a fallback to full redraw when capture fails.
2026-01-17 21:56:00 -07:00
4ac836fc66 - Added a shared XTextColor definition and a palette conversion helper for Cairo-ready colors, decoupling renderer palettes from GdkColor usage in the API surface.
- Updated xtext palette APIs to accept internal color arrays directly for rendering setup.
- Wired xtext palette creation through UI entry points to use the new palette helper when constructing or refreshing text views.
2026-01-17 21:39:45 -07:00
5986e6a78b -Added the standard type attribute to the GTK file info query so file type checks no longer trigger GLib-GIO warnings.
-Replaced GtkStyle application in the channel tree view with explicit base/text/font modifications to avoid style attach/detach issues on teardown.

-Updated user list styling to apply the font directly instead of setting a shared GtkStyle instance.

-Switched color button updates to use background modifications instead of creating per-button styles, reducing detach warnings on shutdown.
2026-01-17 18:31:04 -07:00
2ac5234803 - Added Cairo-based window snapshot conversion (with unpremultiplication) for drag icons and updated drag rendering to use the new helper instead of drawable capture.
- Updated GtkXText to track the draw window and use a pixmap-to-surface helper for Cairo contexts, avoiding drawable references in the struct and rendering flow.
- Added a Cairo helper for capturing window-backed surfaces and used it when blitting during scrolling, fixing the build break from the removed drawable helper.
2026-01-17 17:34:38 -07:00
30e309853c Added the required gdk/gdk.h include before gdkcairo.h in maingui.c to satisfy GDK header include order requirements on Windows builds.
Added cairo surface tracking and context creation helpers for xtext rendering, including state initialization for the new draw surface field.

Replaced GdkPixmap-based offscreen text buffering with cairo surfaces and routed rendering/underline/strikethrough operations through the cairo context helper.
2026-01-17 16:56:35 -07:00
944ce69906 Added a Cairo color helper for drag highlight rendering and applied it to the drag motion drawing path.
Replaced GDK source helpers in the text rendering pipeline with Cairo surface/color helpers for lines, backgrounds, and blits.

Updated render sizing to use window dimensions and switched window copy paths to Cairo surfaces.
2026-01-17 16:46:21 -07:00
4bf5316cfa Replaced legacy GDK rectangle drawing in the drag highlight path with Cairo calls and ensured cleanup before early return 2026-01-17 16:34:38 -07:00
136e63a6cd ciaro fixes 2026-01-17 16:19:56 -07:00
deepend-tildeclub
4c13b96bd9 Merge pull request #26 from ZoiteChat/win-emoji-fix
fix windows color emojis
2026-01-16 23:40:43 -07:00
e985506737 fix windows color emojis 2026-01-16 23:18:12 -07:00
deepend-tildeclub
e97937f82c Merge branch 'theme-integration-in-preferences' into merge-with-theme-update 2026-01-16 23:09:44 -07:00
2c349deee2 theme import fixes. 2026-01-16 22:07:01 -07:00
deepend-tildeclub
44f6fc357e Refactor emoji widget application to use child handling 2026-01-15 20:21:30 -07:00
deepend-tildeclub
20dca7dc2f Enhance emoji widget handling in menu items 2026-01-15 20:10:58 -07:00
deepend-tildeclub
81b2325aa1 Refactor emoji font handling in mg_update_xtext
Removed the emoji fallback font function and related code.
2026-01-15 19:58:12 -07:00
deepend-tildeclub
fa1912bb5d Update maingui.c 2026-01-15 18:35:27 -07:00
3ffa020c2c Fixed auto replace. Now will handle auto replace no matter where or how the text is put in. 2026-01-13 14:16:40 -07:00
c1cbe14871 dark mode 2026-01-11 12:02:58 -07:00
4683ef705b new name after fork 2026-01-05 23:12:38 -07:00
konsolebox
67b25fddf1 Add option to exclude nickname in window title (#2759) 2023-01-24 17:03:53 -06:00
Nolan Lum
9039a5d75b Add -NOOVERRIDE flag to GUI COLOR. (#2644) 2021-10-14 09:44:11 -05:00
Sadie Powell
55e4f1c42e Implement support for strikethrough text.
https://defs.ircdocs.horse/info/formatting.html
2021-06-20 10:39:39 -05:00
BakasuraRCE
da26097aab notification: Implement notification option for channels 2021-05-23 21:17:07 -05:00
delthas
5d5838e712 win32: Replace include of winuser.h with windows.h
winuser.h should never be included directly. windows.h should be included instead.

This fixes a critical build issue added in c5d47fc which makes all MinGW builds fail.

See #2403.
2020-04-19 03:02:29 -07:00
Zach Bacon
d9809f2787 Add missing winuser.h include for mingw (#2403)
Without the include gcc will complain about WM_TIMECHANGE as undeclared.
2019-12-16 00:42:31 -08:00
Patrick Griffis
dc483b2342 Remove shift+click to close tab binding
It is an odd binding that conflicts with typical behavior
where shift click selects multiple items and there is
already the middle click shortcut to close tabs quickly.

Closes #918
2018-03-16 20:33:52 -04:00
Mark Jansen
9b8a7eaa01 win32: Respond to WM_TIMECHANGE by updating the CRT timezone info
Closes #2090
Fixes #1851
2018-03-09 13:24:08 -05:00
Chase Patterson
18b741804c Use localized "HexChat" in window titles
Also allow rearranging of "HexChat" in window titles
2017-09-15 19:18:29 -04:00
Chase Patterson
d935197895 Change windows from starting with "Hexchat: " to ending with " - Hexchat" 2017-09-15 19:18:29 -04:00
Patrick Griffis
d99cd18fb9 Improve detection of system tray support
Closes #2045
2017-08-31 10:16:03 -04:00
Patrick Griffis
241dd69b08 Further tab color improvements
- Combine the three properties into a single one
- Finally fully fix the handling with plugins handling events

TODO: Look into lastact handling of these, seems wrong
2016-11-11 19:27:57 -05:00
Patrick Griffis
539949973c More fixes for tab color handling with plugins
Part 2 of 03767ee0f9

So how the colors work should be pretty straight forward:

- A message comes in and is handled, this sets the state flags:
    nick_said, msg_said, new_data. These map to tab colors.
- This state is reset under one of these conditions:
  - It is commited to the UI when actually printed on unfocused tab
  - Event is interupted by a plugin hook
  - The tab focus is changed
2016-11-11 01:25:12 -05:00
Patrick Griffis
dc09f2c75d Remove unused preference
I can't really think of a reason this would be needed
and since it doesn't do anything, and didn't since xchat,
 might as well remove it.
2016-08-20 23:24:19 -04:00
Patrick Griffis
aabcf6f9f4 Fix crashes when plugins modify UI during Close Context
This probably doesn't catch them all but setting tab color
and printing text at least do not crash in the common case.
2016-07-24 21:14:11 -04:00
Patrick Griffis
ac986bb3a4 Fix leak 2016-07-24 21:10:34 -04:00
LemonBoy
0635e91dd6 Don't flush the chanopt_list when saving it
Closes #1665
Fixes #1134
2016-03-30 08:11:07 -04:00
TingPing
ebe1f824a7 Fix mnemonic collision
Alt+a is used for mark away in the menus and also
highlight all in the search box, change the latter to
alt+h.

Fixes #1008
https://bugzilla.redhat.com/show_bug.cgi?id=1173082
2015-05-27 13:42:59 -04: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
78e51a4f3f Fix mode button text being cut off
This no longer restricts their width and uses
monospace fonts so they are still the same
width.

Closes #1356
Fixes #1354
2015-04-21 15:35:15 -04:00
TingPing
60fa7efbc8 Fix logging hostname of queries
- Move query topic setting from frontend (where its too late)
- Respect chanopts for logging hostname
- Open query logfile *after* chanopts loaded
2015-02-01 01:47:50 -05:00
TingPing
c5016e390f Show correct number of channels/dialogs when closing server tab 2014-12-31 10:50:13 -05:00