You are not logged in.
Hi
I am a long time user of the crossword creation app qxw that I usually install from the AUR. Recently I have had to reinstall due to a complete system overhaul. But I can't seem to get it to build. I know I have installed all the dependencies. I keep getting a bunch of errors. Here are just two
gui.c:669:13: note: ‘m_accept’ declared here
669 | static void m_accept(GtkWidget*w,gpointer data) {
| ^~~~~~~~
gui.c:3506:85: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(GtkWidget *, void *)’ {aka ‘void (*)(struct _GtkWidget *, void *)’} [-Wincompatible-pointer-types]
3506 | answers", 0, m_unban, 0, 0, 0 },
| ^~~~~~~
gui.c:3506:85: note: (near initialization for ‘menu_items[192].callback’)
gui.c:704:13: note: ‘m_unban’ declared here
704 | static void m_unban(GtkWidget*w,gpointer data) {
| ^~~~~~~
gui.c:3508:85: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(GtkWidget *, void *)’ {aka ‘void (*)(struct _GtkWidget *, void *)’} [-Wincompatible-pointer-types]
3508 | 0, m_helpabout, 0, "<StockItem>", GTK_STOCK_ABOUT },
| ^~~~~~~~~~~They all seem to be related GtkWidget.
I recognise that this is a pretty niche bit of software. But is anyone experiencing the same? What am I missing?
Thank You
Last edited by shawniere (2026-04-24 09:58:08)
Offline
Please use [code][/code] tags, not "quote" tags. Edit your post in this regard. (You'll see why)
https://bbs.archlinux.org/viewtopic.php … 6#p2270976 looked like a missing #include but the wrong pointer use could be so vast that it'll be easier to look the other side and allow incompatible pointers.
Offline
Moderator Note
Moving to AUR Issues, Discussion & PKGBUILD Requests
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
https://aur.archlinux.org/packages/crosswords this is a alternative you could use
I Have Linux Perl Can i Download Gnome???
Offline
the wrong pointer use could be so vast that it'll be easier to look the other side and allow incompatible pointers.
146 instances would need to be fixed, as CFLAGS is set with := and does not include user set CFLAGS I used set to add the option to the end of CFLAGS. I also added missing dependency on pcre.
diff --git a/PKGBUILD b/PKGBUILD
index 699c0d9..5d46323 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@ pkgdesc="A program to help you create and publish crosswords."
arch=('i686' 'x86_64')
url="https://www.quinapalus.com/qxw.html"
license=('GPL')
-depends=('gtk2')
+depends=('gtk2' 'pcre')
source=(https://www.quinapalus.com/$pkgname-$pkgver.tar.gz
https://www.quinapalus.com/$pkgname-guide-$pkgver.pdf)
md5sums=('ea0d24690b78e96d750191be4d1345f1'
@@ -20,6 +20,7 @@ prepare() {
cd "$srcdir/$pkgname-$pkgver"
sed -i 's!usr/games!usr/bin!' Makefile
sed -i 's!usr/games!usr/bin!' qxw.desktop
+ sed -i '/^CFLAGS :=/ s/$/ -Wno-error=incompatible-pointer-types/' Makefile
}
build() {Edit:
The patch approach for comparison:
diff --git a/gui.c b/gui.c
index 5619622..6e4fa68 100644
--- a/gui.c
+++ b/gui.c
@@ -3308,204 +3308,204 @@ void syncgui(void) {
// menus
static GtkItemFactoryEntry menu_items[] = {
- { "/_File", 0, 0, 0, "<Branch>", 0 },
- { "/File/_New", 0, 0, 0, "<Branch>", 0 },
- { "/File/New/Current shape and size", "<control>N", m_filenew, 0, "<StockItem>", GTK_STOCK_NEW },
- { "/File/New/Blank 9x9", 0, m_filenew, 0x090980, 0, 0 },
- { "/File/New/Blank 10x10", 0, m_filenew, 0x0a0a80, 0, 0 },
- { "/File/New/Blank 11x11", 0, m_filenew, 0x0b0b80, 0, 0 },
- { "/File/New/Blank 11x13", 0, m_filenew, 0x0b0d80, 0, 0 },
- { "/File/New/Blank 12x12", 0, m_filenew, 0x0c0c80, 0, 0 },
- { "/File/New/Blank 13x11", 0, m_filenew, 0x0d0b80, 0, 0 },
- { "/File/New/Blank 13x13", 0, m_filenew, 0x0d0d80, 0, 0 },
- { "/File/New/Blank 14x14", 0, m_filenew, 0x0e0e80, 0, 0 },
- { "/File/New/Blank 15x15", 0, m_filenew, 0x0f0f80, 0, 0 },
- { "/File/New/Blocked 13x13 template", 0, 0, 0, "<Branch>", 0 },
- { "/File/New/Blocked 13x13 template/No unches on edges", 0, m_filenew, 0x0d0d00, 0, 0 },
- { "/File/New/Blocked 13x13 template/Unches left and right", 0, m_filenew, 0x0d0d01, 0, 0 },
- { "/File/New/Blocked 13x13 template/Unches top and bottom", 0, m_filenew, 0x0d0d02, 0, 0 },
- { "/File/New/Blocked 13x13 template/Unches on all edges", 0, m_filenew, 0x0d0d03, 0, 0 },
- { "/File/New/Blocked 15x15 template", 0, 0, 0, "<Branch>", 0 },
- { "/File/New/Blocked 15x15 template/No unches on edges", 0, m_filenew, 0x0f0f00, 0, 0 },
- { "/File/New/Blocked 15x15 template/Unches left and right", 0, m_filenew, 0x0f0f01, 0, 0 },
- { "/File/New/Blocked 15x15 template/Unches top and bottom", 0, m_filenew, 0x0f0f02, 0, 0 },
- { "/File/New/Blocked 15x15 template/Unches on all edges", 0, m_filenew, 0x0f0f03, 0, 0 },
- { "/File/New/Blocked 17x17 template", 0, 0, 0, "<Branch>", 0 },
- { "/File/New/Blocked 17x17 template/No unches on edges", 0, m_filenew, 0x111100, 0, 0 },
- { "/File/New/Blocked 17x17 template/Unches left and right", 0, m_filenew, 0x111101, 0, 0 },
- { "/File/New/Blocked 17x17 template/Unches top and bottom", 0, m_filenew, 0x111102, 0, 0 },
- { "/File/New/Blocked 17x17 template/Unches on all edges", 0, m_filenew, 0x111103, 0, 0 },
- { "/File/New/Blocked 19x19 template", 0, 0, 0, "<Branch>", 0 },
- { "/File/New/Blocked 19x19 template/No unches on edges", 0, m_filenew, 0x131300, 0, 0 },
- { "/File/New/Blocked 19x19 template/Unches left and right", 0, m_filenew, 0x131301, 0, 0 },
- { "/File/New/Blocked 19x19 template/Unches top and bottom", 0, m_filenew, 0x131302, 0, 0 },
- { "/File/New/Blocked 19x19 template/Unches on all edges", 0, m_filenew, 0x131303, 0, 0 },
- { "/File/New/Blocked 21x21 template", 0, 0, 0, "<Branch>", 0 },
- { "/File/New/Blocked 21x21 template/No unches on edges", 0, m_filenew, 0x151500, 0, 0 },
- { "/File/New/Blocked 21x21 template/Unches left and right", 0, m_filenew, 0x151501, 0, 0 },
- { "/File/New/Blocked 21x21 template/Unches top and bottom", 0, m_filenew, 0x151502, 0, 0 },
- { "/File/New/Blocked 21x21 template/Unches on all edges", 0, m_filenew, 0x151503, 0, 0 },
- { "/File/New/Blocked 23x23 template", 0, 0, 0, "<Branch>", 0 },
- { "/File/New/Blocked 23x23 template/No unches on edges", 0, m_filenew, 0x171700, 0, 0 },
- { "/File/New/Blocked 23x23 template/Unches left and right", 0, m_filenew, 0x171701, 0, 0 },
- { "/File/New/Blocked 23x23 template/Unches top and bottom", 0, m_filenew, 0x171702, 0, 0 },
- { "/File/New/Blocked 23x23 template/Unches on all edges", 0, m_filenew, 0x171703, 0, 0 },
- { "/File/New/Blocked 25x25 template", 0, 0, 0, "<Branch>", 0 },
- { "/File/New/Blocked 25x25 template/No unches on edges", 0, m_filenew, 0x191900, 0, 0 },
- { "/File/New/Blocked 25x25 template/Unches left and right", 0, m_filenew, 0x191901, 0, 0 },
- { "/File/New/Blocked 25x25 template/Unches top and bottom", 0, m_filenew, 0x191902, 0, 0 },
- { "/File/New/Blocked 25x25 template/Unches on all edges", 0, m_filenew, 0x191903, 0, 0 },
- { "/File/sep0", 0, 0, 0, "<Separator>", 0 },
- { "/File/_Open...", "<control>O", m_fileopen, 0, "<StockItem>", GTK_STOCK_OPEN },
- { "/File/_Save", "<control>S", m_filesave, 0, "<StockItem>", GTK_STOCK_SAVE },
- { "/File/Save _as...", 0, m_filesaveas, 0, "<StockItem>", GTK_STOCK_SAVE_AS },
- { "/File/sep1", 0, 0, 0, "<Separator>", 0 },
- { "/File/Export _blank grid image", 0, 0, 0, "<Branch>", 0 },
- { "/File/Export blank grid image/as _EPS...", 0, m_fileexport, 0x401, 0, 0 },
- { "/File/Export blank grid image/as _SVG...", 0, m_fileexport, 0x402, 0, 0 },
- { "/File/Export blank grid image/as _PNG...", 0, m_fileexport, 0x403, 0, 0 },
- { "/File/Export blank grid image/as _HTML...", 0, m_fileexport, 0x404, 0, 0 },
- { "/File/Export _filled grid image", 0, 0, 0, "<Branch>", 0 },
- { "/File/Export filled grid image/as _EPS...", 0, m_fileexport, 0x411, 0, 0 },
- { "/File/Export filled grid image/as _SVG...", 0, m_fileexport, 0x412, 0, 0 },
- { "/File/Export filled grid image/as _PNG...", 0, m_fileexport, 0x413, 0, 0 },
- { "/File/Export filled grid image/as _HTML...", 0, m_fileexport, 0x414, 0, 0 },
- { "/File/Export ans_wers", 0, 0, 0, "<Branch>", 0 },
- { "/File/Export answers/As _text...", 0, m_fileexport, 0x420, 0, 0 },
- { "/File/Export answers/As _HTML...", 0, m_fileexport, 0x423, 0, 0 },
- { "/File/Export _puzzle", 0, 0, 0, "<Branch>", 0 },
- { "/File/Export puzzle/As _HTML...", 0, m_fileexport, 0x433, 0, 0 },
- { "/File/Export puzzle/As HTML+_SVG...", 0, m_fileexport, 0x434, 0, 0 },
- { "/File/Export puzzle/As HTML+_PNG...", 0, m_fileexport, 0x435, 0, 0 },
- { "/File/Export so_lution", 0, 0, 0, "<Branch>", 0 },
- { "/File/Export solution/As _HTML...", 0, m_fileexport, 0x443, 0, 0 },
- { "/File/Export solution/As HTML+_SVG...", 0, m_fileexport, 0x444, 0, 0 },
- { "/File/Export solution/As HTML+_PNG...", 0, m_fileexport, 0x445, 0, 0 },
- { "/File/Export o_ther format", 0, 0, 0, "<Branch>", 0 },
- { "/File/Export other format/_Crossword Compiler XML...", 0, m_fileexport, 0x451, 0, 0 },
- { "/File/sep2", 0, 0, 0, "<Separator>", 0 },
- { "/File/I_mport free light paths", 0, m_importvls, 0, 0, 0 },
- { "/File/E_xport free light paths", 0, m_exportvls, 0, 0, 0 },
- { "/File/sep3", 0, 0, 0, "<Separator>", 0 },
- { "/File/_Quit", "<control>Q", m_filequit, 0, "<StockItem>", GTK_STOCK_QUIT },
- { "/_Edit", 0, 0, 0, "<Branch>", 0 },
- { "/Edit/_Undo", "<control>Z", m_undo, 0, "<StockItem>", GTK_STOCK_UNDO },
- { "/Edit/_Redo", "<control>Y", m_redo, 0, "<StockItem>", GTK_STOCK_REDO },
- { "/Edit/sep1", 0, 0, 0, "<Separator>", 0 },
- { "/Edit/_Solid block", "Insert", m_editblock, 0, 0, 0 },
- { "/Edit/_Bar before", "Return", m_editbarb, 0, 0, 0 },
- { "/Edit/_Empty", "Delete", m_editempty, 0, 0, 0 },
- { "/Edit/_Cutout", "<control>C", m_editcutout, 0, 0, 0 },
- { "/Edit/_Merge with next", "<control>M", m_editmerge, 0, 0, 0 },
- { "/Edit/sep2", 0, 0, 0, "<Separator>", 0 },
- { "/Edit/Cell c_ontents...", "<control>I", m_cellcont, 0, 0, 0 },
- { "/Edit/_Light contents...", "<control>L", m_editlight, 0, 0, 0 },
- { "/Edit/Clear _all cells", "<control>X", m_eraseall, 0, "<StockItem>", GTK_STOCK_CLEAR },
- { "/Edit/C_lear selected cells", "<shift><control>X", m_erasesel, 0xf100, "<StockItem>", GTK_STOCK_CLEAR },
- { "/Edit/sep3", 0, 0, 0, "<Separator>", 0 },
-// { "/Edit/sep4", 0, 0, 0, "<Separator>", 0 },
-// { "/Edit/_Write clue", "<control>W", m_writeclue, 0, 0, 0 },
-// { "/Edit/sep5", 0, 0, 0, "<Separator>", 0 },
- { "/Edit/_Free light", 0, 0, 0, "<Branch>", 0 },
- { "/Edit/Free light/_Start new", 0, m_vlnew, 0xf200, 0, 0 },
- { "/Edit/Free light/_Extend selected", "<control>E", m_vlextend, 0xf201, 0, 0 },
- { "/Edit/Free light/_Shorten selected", "<control>D", m_vlcurtail, 0xf202, 0, 0 },
- { "/Edit/Free light/_Modify selected", 0, m_vlmodify, 0xf203, 0, 0 },
- { "/Edit/Free light/_Delete selected", 0, m_vldelete, 0xf204, 0, 0 },
- { "/Edit/sep6", 0, 0, 0, "<Separator>", 0 },
- { "/Edit/Flip in main dia_gonal", 0, m_editflip, 0xf000, 0, 0 },
- { "/Edit/Rotate cloc_kwise", "greater", m_editrot, 0xf001, 0, 0 },
- { "/Edit/Rotate a_nticlockwise", "less", m_editrot, 0xf002, 0, 0 },
- { "/Edit/_Delete", 0, 0, 0, "<Branch>", 0 },
- { "/Edit/Delete/_Row or annulus", 0, m_delrow, 0, 0, 0 },
- { "/Edit/Delete/_Column or radius", 0, m_delcol, 0, 0, 0 },
- { "/Edit/_Insert", 0, 0, 0, "<Branch>", 0 },
- { "/Edit/Insert/Row _above or outer annulus", 0, m_insrow, 0, 0, 0 },
- { "/Edit/Insert/Row _below or inner annulus", 0, m_insrow, 1, 0, 0 },
- { "/Edit/Insert/Column to _left or previous radius", 0, m_inscol, 0, 0, 0 },
- { "/Edit/Insert/Column to _right or next radius", 0, m_inscol, 1, 0, 0 },
- { "/Edit/sep7", 0, 0, 0, "<Separator>", 0 },
- { "/Edit/_Zoom", 0, 0, 0, "<Branch>", 0 },
- { "/Edit/Zoom/_Out", "<control>minus", m_zoom, -2, 0, 0 },
- { "/Edit/Zoom/_1 50%", "<control>8", m_zoom, 0, 0, 0 },
- { "/Edit/Zoom/_2 71%", "<control>9", m_zoom, 1, 0, 0 },
- { "/Edit/Zoom/_3 100%", "<control>0", m_zoom, 2, 0, 0 },
- { "/Edit/Zoom/_4 141%", "<control>1", m_zoom, 3, 0, 0 },
- { "/Edit/Zoom/_5 200%", "<control>2", m_zoom, 4, 0, 0 },
- { "/Edit/Zoom/_In", "<control>plus", m_zoom, -1, 0, 0 },
- { "/Edit/Show s_tatistics", 0, m_showstats, 0, 0, 0 },
- { "/Edit/_Preferences...", 0, m_editprefs, 0, "<StockItem>", GTK_STOCK_PREFERENCES },
- { "/_Properties", 0, 0, 0, "<Branch>", 0 },
- { "/Properties/_Grid properties...", 0, m_editgprop, 0, "<StockItem>", GTK_STOCK_PROPERTIES },
- { "/Properties/Default _cell properties...", 0, m_dsprop, 0, 0, 0 },
- { "/Properties/Selected c_ell properties...", 0, m_sprop, 0xf300, 0, 0 },
- { "/Properties/Default _light properties...", 0, m_dlprop, 0, 0, 0 },
- { "/Properties/Selected l_ight properties...", 0, m_lprop, 0xf301, 0, 0 },
- { "/_Select", 0, 0, 0, "<Branch>", 0 },
- { "/Select/Current _cell", "<shift>C", m_selcell, 0, 0, 0 },
- { "/Select/Current _light", "<shift>L", m_sellight, 0, 0, 0 },
- { "/Select/Cell _mode <> light mode", "<shift>M", m_selmode, 0, 0, 0 },
- { "/Select/_Free light", "<shift>F", m_selfvl, 0, 0, 0 },
- { "/Select/sep0", 0, 0, 0, "<Separator>", 0 },
- { "/Select/_All", "<shift>A", m_selall, 0, 0, 0 },
- { "/Select/_Invert", "<shift>I", m_selinv, 0, 0, 0 },
- { "/Select/_Nothing", "<shift>N", m_selnone, 0, 0, 0 },
- { "/Select/sep1", 0, 0, 0, "<Separator>", 0 },
- { "/Select/Cell_s", 0, 0, 0, "<Branch>", 0 },
- { "/Select/Cells/overriding default _properties", 0, m_selcover, 0, 0, 0 },
- { "/Select/Cells/flagged for _answer treatment", 0, m_selctreat, 0, 0, 0 },
- { "/Select/Cells/that are _unchecked", 0, m_selcunch, 0, 0, 0 },
- { "/Select/Li_ghts", 0, 0, 0, "<Branch>", 0 },
- { "/Select/Lights/_in current direction", 0, m_sellpar, 0, 0, 0 },
- { "/Select/Lights/overriding default _properties", 0, m_sellover, 0, 0, 0 },
- { "/Select/Lights/with answer treatment _enabled", 0, m_selltreat, 0, 0, 0 },
- { "/Select/Lights/with _double or more unches", 0, m_selviol, 1, 0, 0 },
- { "/Select/Lights/with _triple or more unches", 0, m_selviol, 2, 0, 0 },
- { "/Select/Lights/that are _underchecked", 0, m_selviol, 4, 0, 0 },
- { "/Select/Lights/that are _overchecked", 0, m_selviol, 8, 0, 0 },
- { "/Sy_mmetry", 0, 0, 0, "<Branch>", 0 },
- { "/Symmetry/_None", 0, m_symmclr, 0, 0, 0 },
- { "/Symmetry/sep1", 0, 0, 0, "<Separator>", 0 },
- { "/Symmetry/N_o rotational", 0, m_symm0, 0x0101, "<RadioItem>", 0 },
- { "/Symmetry/_Twofold rotational", 0, m_symm0, 0x0102, "/Symmetry/No rotational" , 0 },
- { "/Symmetry/Threefold rotational", 0, m_symm0, 0x0103, "/Symmetry/Twofold rotational" , 0 },
- { "/Symmetry/_Fourfold rotational", 0, m_symm0, 0x0104, "/Symmetry/Threefold rotational" , 0 },
- { "/Symmetry/Fivefold rotational", 0, m_symm0, 0x0105, "/Symmetry/Fourfold rotational" , 0 },
- { "/Symmetry/Sixfold rotational", 0, m_symm0, 0x0106, "/Symmetry/Fivefold rotational" , 0 },
- { "/Symmetry/Sevenfold rotational", 0, m_symm0, 0x0107, "/Symmetry/Sixfold rotational" , 0 },
- { "/Symmetry/Eightfold rotational", 0, m_symm0, 0x0108, "/Symmetry/Sevenfold rotational" , 0 },
- { "/Symmetry/Ninefold rotational", 0, m_symm0, 0x0109, "/Symmetry/Eightfold rotational" , 0 },
- { "/Symmetry/Tenfold rotational", 0, m_symm0, 0x010a, "/Symmetry/Ninefold rotational" , 0 },
- { "/Symmetry/Elevenfold rotational", 0, m_symm0, 0x010b, "/Symmetry/Tenfold rotational" , 0 },
- { "/Symmetry/Twelvefold rotational", 0, m_symm0, 0x010c, "/Symmetry/Elevenfold rotational", 0 },
- { "/Symmetry/sep2", 0, 0, 0, "<Separator>", 0 },
- { "/Symmetry/No mirror", 0, m_symm1, 0x0200, "<RadioItem>", 0 },
- { "/Symmetry/Left-right mirror", 0, m_symm1, 0x0201, "/Symmetry/No mirror", 0 },
- { "/Symmetry/Up-down mirror", 0, m_symm1, 0x0202, "/Symmetry/Left-right mirror", 0 },
- { "/Symmetry/Both", 0, m_symm1, 0x0203, "/Symmetry/Up-down mirror", 0 },
- { "/Symmetry/sep3", 0, 0, 0, "<Separator>", 0 },
- { "/Symmetry/No duplication", 0, m_symm2, 0x0300, "<RadioItem>", 0 },
- { "/Symmetry/Left-right duplication", 0, m_symm2, 0x0301, "/Symmetry/No duplication", 0 },
- { "/Symmetry/Up-down duplication", 0, m_symm2, 0x0302, "/Symmetry/Left-right duplication", 0 },
- { "/Symmetry/Both", 0, m_symm2, 0x0303, "/Symmetry/Up-down duplication", 0 },
- { "/_Autofill", 0, 0, 0, "<Branch>", 0 },
- { "/Autofill/_Dictionaries...", 0, m_dictionaries, 0, 0, 0 },
- { "/Autofill/Anal_yse dictionaries...", 0, m_dstats, 0, 0, 0 },
- { "/Autofill/_Alphabet...", 0, m_alphabet, 0, 0, 0 },
- { "/Autofill/Answer _treatment...", 0, m_afctreat, 0, 0, 0 },
- { "/Autofill/sep1", 0, 0, 0, "<Separator>", 0 },
- { "/Autofill/Auto_fill", "<control>G", m_autofill, 1, "<StockItem>", GTK_STOCK_EXECUTE },
- { "/Autofill/Autofill _selected cells", "<shift><control>G", m_autofill, 2, "<StockItem>", GTK_STOCK_EXECUTE },
- { "/Autofill/sep2", 0, 0, 0, "<Separator>", 0 },
- { "/Autofill/_Interactive assistance", 0, 0, 0, "<Branch>", 0 },
- { "/Autofill/Interactive assistance/_Off", 0, m_ifamode, 0x0500, "<RadioItem>", 0 },
- { "/Autofill/Interactive assistance/_Light only", 0, m_ifamode, 0x0501, "/Autofill/Interactive assistance/Off", 0 },
- { "/Autofill/Interactive assistance/_Entire grid", 0, m_ifamode, 0x0502, "/Autofill/Interactive assistance/Light only", 0 },
- { "/Autofill/Accept _hints", "<control>A", m_accept, 0, 0, 0 },
- { "/Autofill/sep2", 0, 0, 0, "<Separator>", 0 },
- { "/Autofill/_Unban all answers", 0, m_unban, 0, 0, 0 },
- { "/_Help", 0, 0, 0, "<LastBranch>", 0 },
- { "/Help/_About", 0, m_helpabout, 0, "<StockItem>", GTK_STOCK_ABOUT },
+ { "/_File", 0, 0, 0, "<Branch>", 0 },
+ { "/File/_New", 0, 0, 0, "<Branch>", 0 },
+ { "/File/New/Current shape and size", "<control>N", G_CALLBACK(m_filenew), 0, "<StockItem>", GTK_STOCK_NEW },
+ { "/File/New/Blank 9x9", 0, G_CALLBACK(m_filenew), 0x090980, 0, 0 },
+ { "/File/New/Blank 10x10", 0, G_CALLBACK(m_filenew), 0x0a0a80, 0, 0 },
+ { "/File/New/Blank 11x11", 0, G_CALLBACK(m_filenew), 0x0b0b80, 0, 0 },
+ { "/File/New/Blank 11x13", 0, G_CALLBACK(m_filenew), 0x0b0d80, 0, 0 },
+ { "/File/New/Blank 12x12", 0, G_CALLBACK(m_filenew), 0x0c0c80, 0, 0 },
+ { "/File/New/Blank 13x11", 0, G_CALLBACK(m_filenew), 0x0d0b80, 0, 0 },
+ { "/File/New/Blank 13x13", 0, G_CALLBACK(m_filenew), 0x0d0d80, 0, 0 },
+ { "/File/New/Blank 14x14", 0, G_CALLBACK(m_filenew), 0x0e0e80, 0, 0 },
+ { "/File/New/Blank 15x15", 0, G_CALLBACK(m_filenew), 0x0f0f80, 0, 0 },
+ { "/File/New/Blocked 13x13 template", 0, 0, 0, "<Branch>", 0 },
+ { "/File/New/Blocked 13x13 template/No unches on edges", 0, G_CALLBACK(m_filenew), 0x0d0d00, 0, 0 },
+ { "/File/New/Blocked 13x13 template/Unches left and right", 0, G_CALLBACK(m_filenew), 0x0d0d01, 0, 0 },
+ { "/File/New/Blocked 13x13 template/Unches top and bottom", 0, G_CALLBACK(m_filenew), 0x0d0d02, 0, 0 },
+ { "/File/New/Blocked 13x13 template/Unches on all edges", 0, G_CALLBACK(m_filenew), 0x0d0d03, 0, 0 },
+ { "/File/New/Blocked 15x15 template", 0, 0, 0, "<Branch>", 0 },
+ { "/File/New/Blocked 15x15 template/No unches on edges", 0, G_CALLBACK(m_filenew), 0x0f0f00, 0, 0 },
+ { "/File/New/Blocked 15x15 template/Unches left and right", 0, G_CALLBACK(m_filenew), 0x0f0f01, 0, 0 },
+ { "/File/New/Blocked 15x15 template/Unches top and bottom", 0, G_CALLBACK(m_filenew), 0x0f0f02, 0, 0 },
+ { "/File/New/Blocked 15x15 template/Unches on all edges", 0, G_CALLBACK(m_filenew), 0x0f0f03, 0, 0 },
+ { "/File/New/Blocked 17x17 template", 0, 0, 0, "<Branch>", 0 },
+ { "/File/New/Blocked 17x17 template/No unches on edges", 0, G_CALLBACK(m_filenew), 0x111100, 0, 0 },
+ { "/File/New/Blocked 17x17 template/Unches left and right", 0, G_CALLBACK(m_filenew), 0x111101, 0, 0 },
+ { "/File/New/Blocked 17x17 template/Unches top and bottom", 0, G_CALLBACK(m_filenew), 0x111102, 0, 0 },
+ { "/File/New/Blocked 17x17 template/Unches on all edges", 0, G_CALLBACK(m_filenew), 0x111103, 0, 0 },
+ { "/File/New/Blocked 19x19 template", 0, 0, 0, "<Branch>", 0 },
+ { "/File/New/Blocked 19x19 template/No unches on edges", 0, G_CALLBACK(m_filenew), 0x131300, 0, 0 },
+ { "/File/New/Blocked 19x19 template/Unches left and right", 0, G_CALLBACK(m_filenew), 0x131301, 0, 0 },
+ { "/File/New/Blocked 19x19 template/Unches top and bottom", 0, G_CALLBACK(m_filenew), 0x131302, 0, 0 },
+ { "/File/New/Blocked 19x19 template/Unches on all edges", 0, G_CALLBACK(m_filenew), 0x131303, 0, 0 },
+ { "/File/New/Blocked 21x21 template", 0, 0, 0, "<Branch>", 0 },
+ { "/File/New/Blocked 21x21 template/No unches on edges", 0, G_CALLBACK(m_filenew), 0x151500, 0, 0 },
+ { "/File/New/Blocked 21x21 template/Unches left and right", 0, G_CALLBACK(m_filenew), 0x151501, 0, 0 },
+ { "/File/New/Blocked 21x21 template/Unches top and bottom", 0, G_CALLBACK(m_filenew), 0x151502, 0, 0 },
+ { "/File/New/Blocked 21x21 template/Unches on all edges", 0, G_CALLBACK(m_filenew), 0x151503, 0, 0 },
+ { "/File/New/Blocked 23x23 template", 0, 0, 0, "<Branch>", 0 },
+ { "/File/New/Blocked 23x23 template/No unches on edges", 0, G_CALLBACK(m_filenew), 0x171700, 0, 0 },
+ { "/File/New/Blocked 23x23 template/Unches left and right", 0, G_CALLBACK(m_filenew), 0x171701, 0, 0 },
+ { "/File/New/Blocked 23x23 template/Unches top and bottom", 0, G_CALLBACK(m_filenew), 0x171702, 0, 0 },
+ { "/File/New/Blocked 23x23 template/Unches on all edges", 0, G_CALLBACK(m_filenew), 0x171703, 0, 0 },
+ { "/File/New/Blocked 25x25 template", 0, 0, 0, "<Branch>", 0 },
+ { "/File/New/Blocked 25x25 template/No unches on edges", 0, G_CALLBACK(m_filenew), 0x191900, 0, 0 },
+ { "/File/New/Blocked 25x25 template/Unches left and right", 0, G_CALLBACK(m_filenew), 0x191901, 0, 0 },
+ { "/File/New/Blocked 25x25 template/Unches top and bottom", 0, G_CALLBACK(m_filenew), 0x191902, 0, 0 },
+ { "/File/New/Blocked 25x25 template/Unches on all edges", 0, G_CALLBACK(m_filenew), 0x191903, 0, 0 },
+ { "/File/sep0", 0, 0, 0, "<Separator>", 0 },
+ { "/File/_Open...", "<control>O", G_CALLBACK(m_fileopen), 0, "<StockItem>", GTK_STOCK_OPEN },
+ { "/File/_Save", "<control>S", G_CALLBACK(m_filesave), 0, "<StockItem>", GTK_STOCK_SAVE },
+ { "/File/Save _as...", 0, G_CALLBACK(m_filesaveas), 0, "<StockItem>", GTK_STOCK_SAVE_AS },
+ { "/File/sep1", 0, 0, 0, "<Separator>", 0 },
+ { "/File/Export _blank grid image", 0, 0, 0, "<Branch>", 0 },
+ { "/File/Export blank grid image/as _EPS...", 0, G_CALLBACK(m_fileexport), 0x401, 0, 0 },
+ { "/File/Export blank grid image/as _SVG...", 0, G_CALLBACK(m_fileexport), 0x402, 0, 0 },
+ { "/File/Export blank grid image/as _PNG...", 0, G_CALLBACK(m_fileexport), 0x403, 0, 0 },
+ { "/File/Export blank grid image/as _HTML...", 0, G_CALLBACK(m_fileexport), 0x404, 0, 0 },
+ { "/File/Export _filled grid image", 0, 0, 0, "<Branch>", 0 },
+ { "/File/Export filled grid image/as _EPS...", 0, G_CALLBACK(m_fileexport), 0x411, 0, 0 },
+ { "/File/Export filled grid image/as _SVG...", 0, G_CALLBACK(m_fileexport), 0x412, 0, 0 },
+ { "/File/Export filled grid image/as _PNG...", 0, G_CALLBACK(m_fileexport), 0x413, 0, 0 },
+ { "/File/Export filled grid image/as _HTML...", 0, G_CALLBACK(m_fileexport), 0x414, 0, 0 },
+ { "/File/Export ans_wers", 0, 0, 0, "<Branch>", 0 },
+ { "/File/Export answers/As _text...", 0, G_CALLBACK(m_fileexport), 0x420, 0, 0 },
+ { "/File/Export answers/As _HTML...", 0, G_CALLBACK(m_fileexport), 0x423, 0, 0 },
+ { "/File/Export _puzzle", 0, 0, 0, "<Branch>", 0 },
+ { "/File/Export puzzle/As _HTML...", 0, G_CALLBACK(m_fileexport), 0x433, 0, 0 },
+ { "/File/Export puzzle/As HTML+_SVG...", 0, G_CALLBACK(m_fileexport), 0x434, 0, 0 },
+ { "/File/Export puzzle/As HTML+_PNG...", 0, G_CALLBACK(m_fileexport), 0x435, 0, 0 },
+ { "/File/Export so_lution", 0, 0, 0, "<Branch>", 0 },
+ { "/File/Export solution/As _HTML...", 0, G_CALLBACK(m_fileexport), 0x443, 0, 0 },
+ { "/File/Export solution/As HTML+_SVG...", 0, G_CALLBACK(m_fileexport), 0x444, 0, 0 },
+ { "/File/Export solution/As HTML+_PNG...", 0, G_CALLBACK(m_fileexport), 0x445, 0, 0 },
+ { "/File/Export o_ther format", 0, 0, 0, "<Branch>", 0 },
+ { "/File/Export other format/_Crossword Compiler XML...", 0, G_CALLBACK(m_fileexport), 0x451, 0, 0 },
+ { "/File/sep2", 0, 0, 0, "<Separator>", 0 },
+ { "/File/I_mport free light paths", 0, G_CALLBACK(m_importvls), 0, 0, 0 },
+ { "/File/E_xport free light paths", 0, G_CALLBACK(m_exportvls), 0, 0, 0 },
+ { "/File/sep3", 0, 0, 0, "<Separator>", 0 },
+ { "/File/_Quit", "<control>Q", G_CALLBACK(m_filequit), 0, "<StockItem>", GTK_STOCK_QUIT },
+ { "/_Edit", 0, 0, 0, "<Branch>", 0 },
+ { "/Edit/_Undo", "<control>Z", G_CALLBACK(m_undo), 0, "<StockItem>", GTK_STOCK_UNDO },
+ { "/Edit/_Redo", "<control>Y", G_CALLBACK(m_redo), 0, "<StockItem>", GTK_STOCK_REDO },
+ { "/Edit/sep1", 0, 0, 0, "<Separator>", 0 },
+ { "/Edit/_Solid block", "Insert", G_CALLBACK(m_editblock), 0, 0, 0 },
+ { "/Edit/_Bar before", "Return", G_CALLBACK(m_editbarb), 0, 0, 0 },
+ { "/Edit/_Empty", "Delete", G_CALLBACK(m_editempty), 0, 0, 0 },
+ { "/Edit/_Cutout", "<control>C", G_CALLBACK(m_editcutout), 0, 0, 0 },
+ { "/Edit/_Merge with next", "<control>M", G_CALLBACK(m_editmerge), 0, 0, 0 },
+ { "/Edit/sep2", 0, 0, 0, "<Separator>", 0 },
+ { "/Edit/Cell c_ontents...", "<control>I", G_CALLBACK(m_cellcont), 0, 0, 0 },
+ { "/Edit/_Light contents...", "<control>L", G_CALLBACK(m_editlight), 0, 0, 0 },
+ { "/Edit/Clear _all cells", "<control>X", G_CALLBACK(m_eraseall), 0, "<StockItem>", GTK_STOCK_CLEAR },
+ { "/Edit/C_lear selected cells", "<shift><control>X", G_CALLBACK(m_erasesel), 0xf100, "<StockItem>", GTK_STOCK_CLEAR },
+ { "/Edit/sep3", 0, 0, 0, "<Separator>", 0 },
+// { "/Edit/sep4", 0, 0, 0, "<Separator>", 0 },
+// { "/Edit/_Write clue", "<control>W", G_CALLBACK(m_writeclue), 0, 0, 0 },
+// { "/Edit/sep5", 0, 0, 0, "<Separator>", 0 },
+ { "/Edit/_Free light", 0, 0, 0, "<Branch>", 0 },
+ { "/Edit/Free light/_Start new", 0, G_CALLBACK(m_vlnew), 0xf200, 0, 0 },
+ { "/Edit/Free light/_Extend selected", "<control>E", G_CALLBACK(m_vlextend), 0xf201, 0, 0 },
+ { "/Edit/Free light/_Shorten selected", "<control>D", G_CALLBACK(m_vlcurtail), 0xf202, 0, 0 },
+ { "/Edit/Free light/_Modify selected", 0, G_CALLBACK(m_vlmodify), 0xf203, 0, 0 },
+ { "/Edit/Free light/_Delete selected", 0, G_CALLBACK(m_vldelete), 0xf204, 0, 0 },
+ { "/Edit/sep6", 0, 0, 0, "<Separator>", 0 },
+ { "/Edit/Flip in main dia_gonal", 0, G_CALLBACK(m_editflip), 0xf000, 0, 0 },
+ { "/Edit/Rotate cloc_kwise", "greater", G_CALLBACK(m_editrot), 0xf001, 0, 0 },
+ { "/Edit/Rotate a_nticlockwise", "less", G_CALLBACK(m_editrot), 0xf002, 0, 0 },
+ { "/Edit/_Delete", 0, 0, 0, "<Branch>", 0 },
+ { "/Edit/Delete/_Row or annulus", 0, G_CALLBACK(m_delrow), 0, 0, 0 },
+ { "/Edit/Delete/_Column or radius", 0, G_CALLBACK(m_delcol), 0, 0, 0 },
+ { "/Edit/_Insert", 0, 0, 0, "<Branch>", 0 },
+ { "/Edit/Insert/Row _above or outer annulus", 0, G_CALLBACK(m_insrow), 0, 0, 0 },
+ { "/Edit/Insert/Row _below or inner annulus", 0, G_CALLBACK(m_insrow), 1, 0, 0 },
+ { "/Edit/Insert/Column to _left or previous radius", 0, G_CALLBACK(m_inscol), 0, 0, 0 },
+ { "/Edit/Insert/Column to _right or next radius", 0, G_CALLBACK(m_inscol), 1, 0, 0 },
+ { "/Edit/sep7", 0, 0, 0, "<Separator>", 0 },
+ { "/Edit/_Zoom", 0, 0, 0, "<Branch>", 0 },
+ { "/Edit/Zoom/_Out", "<control>minus", G_CALLBACK(m_zoom), -2, 0, 0 },
+ { "/Edit/Zoom/_1 50%", "<control>8", G_CALLBACK(m_zoom), 0, 0, 0 },
+ { "/Edit/Zoom/_2 71%", "<control>9", G_CALLBACK(m_zoom), 1, 0, 0 },
+ { "/Edit/Zoom/_3 100%", "<control>0", G_CALLBACK(m_zoom), 2, 0, 0 },
+ { "/Edit/Zoom/_4 141%", "<control>1", G_CALLBACK(m_zoom), 3, 0, 0 },
+ { "/Edit/Zoom/_5 200%", "<control>2", G_CALLBACK(m_zoom), 4, 0, 0 },
+ { "/Edit/Zoom/_In", "<control>plus", G_CALLBACK(m_zoom), -1, 0, 0 },
+ { "/Edit/Show s_tatistics", 0, G_CALLBACK(m_showstats), 0, 0, 0 },
+ { "/Edit/_Preferences...", 0, G_CALLBACK(m_editprefs), 0, "<StockItem>", GTK_STOCK_PREFERENCES },
+ { "/_Properties", 0, 0, 0, "<Branch>", 0 },
+ { "/Properties/_Grid properties...", 0, G_CALLBACK(m_editgprop), 0, "<StockItem>", GTK_STOCK_PROPERTIES },
+ { "/Properties/Default _cell properties...", 0, G_CALLBACK(m_dsprop), 0, 0, 0 },
+ { "/Properties/Selected c_ell properties...", 0, G_CALLBACK(m_sprop), 0xf300, 0, 0 },
+ { "/Properties/Default _light properties...", 0, G_CALLBACK(m_dlprop), 0, 0, 0 },
+ { "/Properties/Selected l_ight properties...", 0, G_CALLBACK(m_lprop), 0xf301, 0, 0 },
+ { "/_Select", 0, 0, 0, "<Branch>", 0 },
+ { "/Select/Current _cell", "<shift>C", G_CALLBACK(m_selcell), 0, 0, 0 },
+ { "/Select/Current _light", "<shift>L", G_CALLBACK(m_sellight), 0, 0, 0 },
+ { "/Select/Cell _mode <> light mode", "<shift>M", G_CALLBACK(m_selmode), 0, 0, 0 },
+ { "/Select/_Free light", "<shift>F", G_CALLBACK(m_selfvl), 0, 0, 0 },
+ { "/Select/sep0", 0, 0, 0, "<Separator>", 0 },
+ { "/Select/_All", "<shift>A", G_CALLBACK(m_selall), 0, 0, 0 },
+ { "/Select/_Invert", "<shift>I", G_CALLBACK(m_selinv), 0, 0, 0 },
+ { "/Select/_Nothing", "<shift>N", G_CALLBACK(m_selnone), 0, 0, 0 },
+ { "/Select/sep1", 0, 0, 0, "<Separator>", 0 },
+ { "/Select/Cell_s", 0, 0, 0, "<Branch>", 0 },
+ { "/Select/Cells/overriding default _properties", 0, G_CALLBACK(m_selcover), 0, 0, 0 },
+ { "/Select/Cells/flagged for _answer treatment", 0, G_CALLBACK(m_selctreat), 0, 0, 0 },
+ { "/Select/Cells/that are _unchecked", 0, G_CALLBACK(m_selcunch), 0, 0, 0 },
+ { "/Select/Li_ghts", 0, 0, 0, "<Branch>", 0 },
+ { "/Select/Lights/_in current direction", 0, G_CALLBACK(m_sellpar), 0, 0, 0 },
+ { "/Select/Lights/overriding default _properties", 0, G_CALLBACK(m_sellover), 0, 0, 0 },
+ { "/Select/Lights/with answer treatment _enabled", 0, G_CALLBACK(m_selltreat), 0, 0, 0 },
+ { "/Select/Lights/with _double or more unches", 0, G_CALLBACK(m_selviol), 1, 0, 0 },
+ { "/Select/Lights/with _triple or more unches", 0, G_CALLBACK(m_selviol), 2, 0, 0 },
+ { "/Select/Lights/that are _underchecked", 0, G_CALLBACK(m_selviol), 4, 0, 0 },
+ { "/Select/Lights/that are _overchecked", 0, G_CALLBACK(m_selviol), 8, 0, 0 },
+ { "/Sy_mmetry", 0, 0, 0, "<Branch>", 0 },
+ { "/Symmetry/_None", 0, G_CALLBACK(m_symmclr), 0, 0, 0 },
+ { "/Symmetry/sep1", 0, 0, 0, "<Separator>", 0 },
+ { "/Symmetry/N_o rotational", 0, G_CALLBACK(m_symm0), 0x0101, "<RadioItem>", 0 },
+ { "/Symmetry/_Twofold rotational", 0, G_CALLBACK(m_symm0), 0x0102, "/Symmetry/No rotational" , 0 },
+ { "/Symmetry/Threefold rotational", 0, G_CALLBACK(m_symm0), 0x0103, "/Symmetry/Twofold rotational" , 0 },
+ { "/Symmetry/_Fourfold rotational", 0, G_CALLBACK(m_symm0), 0x0104, "/Symmetry/Threefold rotational" , 0 },
+ { "/Symmetry/Fivefold rotational", 0, G_CALLBACK(m_symm0), 0x0105, "/Symmetry/Fourfold rotational" , 0 },
+ { "/Symmetry/Sixfold rotational", 0, G_CALLBACK(m_symm0), 0x0106, "/Symmetry/Fivefold rotational" , 0 },
+ { "/Symmetry/Sevenfold rotational", 0, G_CALLBACK(m_symm0), 0x0107, "/Symmetry/Sixfold rotational" , 0 },
+ { "/Symmetry/Eightfold rotational", 0, G_CALLBACK(m_symm0), 0x0108, "/Symmetry/Sevenfold rotational" , 0 },
+ { "/Symmetry/Ninefold rotational", 0, G_CALLBACK(m_symm0), 0x0109, "/Symmetry/Eightfold rotational" , 0 },
+ { "/Symmetry/Tenfold rotational", 0, G_CALLBACK(m_symm0), 0x010a, "/Symmetry/Ninefold rotational" , 0 },
+ { "/Symmetry/Elevenfold rotational", 0, G_CALLBACK(m_symm0), 0x010b, "/Symmetry/Tenfold rotational" , 0 },
+ { "/Symmetry/Twelvefold rotational", 0, G_CALLBACK(m_symm0), 0x010c, "/Symmetry/Elevenfold rotational", 0 },
+ { "/Symmetry/sep2", 0, 0, 0, "<Separator>", 0 },
+ { "/Symmetry/No mirror", 0, G_CALLBACK(m_symm1), 0x0200, "<RadioItem>", 0 },
+ { "/Symmetry/Left-right mirror", 0, G_CALLBACK(m_symm1), 0x0201, "/Symmetry/No mirror", 0 },
+ { "/Symmetry/Up-down mirror", 0, G_CALLBACK(m_symm1), 0x0202, "/Symmetry/Left-right mirror", 0 },
+ { "/Symmetry/Both", 0, G_CALLBACK(m_symm1), 0x0203, "/Symmetry/Up-down mirror", 0 },
+ { "/Symmetry/sep3", 0, 0, 0, "<Separator>", 0 },
+ { "/Symmetry/No duplication", 0, G_CALLBACK(m_symm2), 0x0300, "<RadioItem>", 0 },
+ { "/Symmetry/Left-right duplication", 0, G_CALLBACK(m_symm2), 0x0301, "/Symmetry/No duplication", 0 },
+ { "/Symmetry/Up-down duplication", 0, G_CALLBACK(m_symm2), 0x0302, "/Symmetry/Left-right duplication", 0 },
+ { "/Symmetry/Both", 0, G_CALLBACK(m_symm2), 0x0303, "/Symmetry/Up-down duplication", 0 },
+ { "/_Autofill", 0, 0, 0, "<Branch>", 0 },
+ { "/Autofill/_Dictionaries...", 0, G_CALLBACK(m_dictionaries), 0, 0, 0 },
+ { "/Autofill/Anal_yse dictionaries...", 0, G_CALLBACK(m_dstats), 0, 0, 0 },
+ { "/Autofill/_Alphabet...", 0, G_CALLBACK(m_alphabet), 0, 0, 0 },
+ { "/Autofill/Answer _treatment...", 0, G_CALLBACK(m_afctreat), 0, 0, 0 },
+ { "/Autofill/sep1", 0, 0, 0, "<Separator>", 0 },
+ { "/Autofill/Auto_fill", "<control>G", G_CALLBACK(m_autofill), 1, "<StockItem>", GTK_STOCK_EXECUTE },
+ { "/Autofill/Autofill _selected cells", "<shift><control>G", G_CALLBACK(m_autofill), 2, "<StockItem>", GTK_STOCK_EXECUTE },
+ { "/Autofill/sep2", 0, 0, 0, "<Separator>", 0 },
+ { "/Autofill/_Interactive assistance", 0, 0, 0, "<Branch>", 0 },
+ { "/Autofill/Interactive assistance/_Off", 0, G_CALLBACK(m_ifamode), 0x0500, "<RadioItem>", 0 },
+ { "/Autofill/Interactive assistance/_Light only", 0, G_CALLBACK(m_ifamode), 0x0501, "/Autofill/Interactive assistance/Off", 0 },
+ { "/Autofill/Interactive assistance/_Entire grid", 0, G_CALLBACK(m_ifamode), 0x0502, "/Autofill/Interactive assistance/Light only", 0 },
+ { "/Autofill/Accept _hints", "<control>A", G_CALLBACK(m_accept), 0, 0, 0 },
+ { "/Autofill/sep2", 0, 0, 0, "<Separator>", 0 },
+ { "/Autofill/_Unban all answers", 0, G_CALLBACK(m_unban), 0, 0, 0 },
+ { "/_Help", 0, 0, 0, "<LastBranch>", 0 },
+ { "/Help/_About", 0, G_CALLBACK(m_helpabout), 0, "<StockItem>", GTK_STOCK_ABOUT },
};
// build main window and other initialisationLast edited by loqs (2026-04-23 23:51:50)
Offline