Stripped C-style comments from C sources and headers where appropriate.

This commit is contained in:
Pietro Gagliardi 2014-08-14 10:42:10 -04:00
parent 19976849e1
commit c1dc235d3b
14 changed files with 102 additions and 106 deletions

View File

@ -1,6 +1,4 @@
/* 24 march 2014 */ // 24 march 2014
/* TODO either strip the // comments or find out if --std=c99 is safe for cgo */
#include "winapi_windows.h" #include "winapi_windows.h"
#include "_cgo_export.h" #include "_cgo_export.h"
@ -319,13 +317,13 @@ static LRESULT CALLBACK areaWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM
data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA); data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA);
if (data == NULL) { if (data == NULL) {
/* the lpParam is available during WM_NCCREATE and WM_CREATE */ // the lpParam is available during WM_NCCREATE and WM_CREATE
if (uMsg == WM_NCCREATE) { if (uMsg == WM_NCCREATE) {
storelpParam(hwnd, lParam); storelpParam(hwnd, lParam);
data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA); data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA);
storeAreaHWND(data, hwnd); storeAreaHWND(data, hwnd);
} }
/* act as if we're not ready yet, even during WM_NCCREATE (nothing important to the switch statement below happens here anyway) */ // act as if we're not ready yet, even during WM_NCCREATE (nothing important to the switch statement below happens here anyway)
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);
} }
@ -414,7 +412,7 @@ static LRESULT CALLBACK areaWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);
} }
xmissedmsg("Area", "areaWndProc()", uMsg); xmissedmsg("Area", "areaWndProc()", uMsg);
return 0; /* unreached */ return 0; // unreached
} }
DWORD makeAreaWindowClass(char **errmsg) DWORD makeAreaWindowClass(char **errmsg)

View File

@ -1,4 +1,4 @@
/* 17 july 2014 */ // 17 july 2014
#include "winapi_windows.h" #include "winapi_windows.h"
#include "_cgo_export.h" #include "_cgo_export.h"
@ -20,7 +20,7 @@ static LRESULT CALLBACK buttonSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARA
return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam); return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam);
} }
xmissedmsg("Button", "buttonSubProc()", uMsg); xmissedmsg("Button", "buttonSubProc()", uMsg);
return 0; /* unreached */ return 0; // unreached
} }
void setButtonSubclass(HWND hwnd, void *data) void setButtonSubclass(HWND hwnd, void *data)
@ -36,7 +36,7 @@ static LRESULT CALLBACK checkboxSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPA
if (HIWORD(wParam) == BN_CLICKED) { if (HIWORD(wParam) == BN_CLICKED) {
WPARAM check; WPARAM check;
/* we didn't use BS_AUTOCHECKBOX (see controls_windows.go) so we have to manage the check state ourselves */ // we didn't use BS_AUTOCHECKBOX (see controls_windows.go) so we have to manage the check state ourselves
check = BST_CHECKED; check = BST_CHECKED;
if (SendMessage(hwnd, BM_GETCHECK, 0, 0) == BST_CHECKED) if (SendMessage(hwnd, BM_GETCHECK, 0, 0) == BST_CHECKED)
check = BST_UNCHECKED; check = BST_UNCHECKED;
@ -53,7 +53,7 @@ static LRESULT CALLBACK checkboxSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPA
return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam); return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam);
} }
xmissedmsg("Checkbox", "checkboxSubProc()", uMsg); xmissedmsg("Checkbox", "checkboxSubProc()", uMsg);
return 0; /* unreached */ return 0; // unreached
} }
void setCheckboxSubclass(HWND hwnd, void *data) void setCheckboxSubclass(HWND hwnd, void *data)

View File

@ -1,11 +1,11 @@
/* 17 july 2014 */ // 17 july 2014
#include "winapi_windows.h" #include "winapi_windows.h"
static ULONG_PTR comctlManifestCookie; static ULONG_PTR comctlManifestCookie;
static HMODULE comctl32; static HMODULE comctl32;
/* these are listed as WINAPI in both Microsoft's and MinGW's headers, but not on MSDN for some reason */ // these are listed as WINAPI in both Microsoft's and MinGW's headers, but not on MSDN for some reason
BOOL (*WINAPI fv_SetWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR); BOOL (*WINAPI fv_SetWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR);
BOOL (*WINAPI fv_RemoveWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR); BOOL (*WINAPI fv_RemoveWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR);
LRESULT (*WINAPI fv_DefSubclassProc)(HWND, UINT, WPARAM, LPARAM); LRESULT (*WINAPI fv_DefSubclassProc)(HWND, UINT, WPARAM, LPARAM);
@ -16,7 +16,7 @@ LRESULT (*WINAPI fv_DefSubclassProc)(HWND, UINT, WPARAM, LPARAM);
ICC_LISTVIEW_CLASSES | /* list views */ \ ICC_LISTVIEW_CLASSES | /* list views */ \
0) 0)
/* note that this is an 8-bit character string we're writing; see the encoding clause */ // note that this is an 8-bit character string we're writing; see the encoding clause
static const char manifest[] = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\n<assemblyIdentity\n version=\"1.0.0.0\"\n processorArchitecture=\"*\"\n name=\"CompanyName.ProductName.YourApplication\"\n type=\"win32\"\n/>\n<description>Your application description here.</description>\n<dependency>\n <dependentAssembly>\n <assemblyIdentity\n type=\"win32\"\n name=\"Microsoft.Windows.Common-Controls\"\n version=\"6.0.0.0\"\n processorArchitecture=\"*\"\n publicKeyToken=\"6595b64144ccf1df\"\n language=\"*\"\n />\n </dependentAssembly>\n</dependency>\n</assembly>\n"; static const char manifest[] = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\n<assemblyIdentity\n version=\"1.0.0.0\"\n processorArchitecture=\"*\"\n name=\"CompanyName.ProductName.YourApplication\"\n type=\"win32\"\n/>\n<description>Your application description here.</description>\n<dependency>\n <dependentAssembly>\n <assemblyIdentity\n type=\"win32\"\n name=\"Microsoft.Windows.Common-Controls\"\n version=\"6.0.0.0\"\n processorArchitecture=\"*\"\n publicKeyToken=\"6595b64144ccf1df\"\n language=\"*\"\n />\n </dependentAssembly>\n</dependency>\n</assembly>\n";
/* /*
@ -38,7 +38,7 @@ DWORD initCommonControls(char **errmsg)
HANDLE ac; HANDLE ac;
INITCOMMONCONTROLSEX icc; INITCOMMONCONTROLSEX icc;
FARPROC f; FARPROC f;
/* this is listed as WINAPI in both Microsoft's and MinGW's headers, but not on MSDN for some reason */ // this is listed as WINAPI in both Microsoft's and MinGW's headers, but not on MSDN for some reason
BOOL (*WINAPI ficc)(const LPINITCOMMONCONTROLSEX); BOOL (*WINAPI ficc)(const LPINITCOMMONCONTROLSEX);
if (GetTempPathW(MAX_PATH + 1, temppath) == 0) { if (GetTempPathW(MAX_PATH + 1, temppath) == 0) {
@ -50,14 +50,14 @@ DWORD initCommonControls(char **errmsg)
return GetLastError(); return GetLastError();
} }
file = CreateFileW(filename, GENERIC_WRITE, file = CreateFileW(filename, GENERIC_WRITE,
0, /* don't share while writing */ 0, // don't share while writing
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (file == NULL) { if (file == NULL) {
*errmsg = "error creating manifest file"; *errmsg = "error creating manifest file";
return GetLastError(); return GetLastError();
} }
nExpected = (sizeof manifest / sizeof manifest[0]) - 1; /* - 1 to omit the terminating null character) nExpected = (sizeof manifest / sizeof manifest[0]) - 1; // - 1 to omit the terminating null character)
SetLastError(0); /* catch errorless short writes */ SetLastError(0); // catch errorless short writes
if (WriteFile(file, manifest, nExpected, &nGot, NULL) == 0) { if (WriteFile(file, manifest, nExpected, &nGot, NULL) == 0) {
*errmsg = "error writing manifest file"; *errmsg = "error writing manifest file";
return GetLastError(); return GetLastError();
@ -100,7 +100,7 @@ DWORD initCommonControls(char **errmsg)
return GetLastError(); return GetLastError();
} }
/* GetProcAddress() only takes a multibyte string */ // GetProcAddress() only takes a multibyte string
#define LOAD(fn) f = GetProcAddress(comctl32, fn); \ #define LOAD(fn) f = GetProcAddress(comctl32, fn); \
if (f == NULL) { \ if (f == NULL) { \
*errmsg = "error loading " fn "()"; \ *errmsg = "error loading " fn "()"; \

View File

@ -1,6 +1,6 @@
// +build !windows,!darwin // +build !windows,!darwin
/* 13 august 2014 */ // 13 august 2014
#include "gtk_unix.h" #include "gtk_unix.h"
#include "_cgo_export.h" #include "_cgo_export.h"
@ -18,7 +18,7 @@ typedef struct goContainerClass goContainerClass;
struct goContainer { struct goContainer {
GtkContainer parent_instance; GtkContainer parent_instance;
void *gocontainer; void *gocontainer;
GPtrArray *children; /* for forall() */ GPtrArray *children; // for forall()
}; };
struct goContainerClass { struct goContainerClass {

View File

@ -1,4 +1,4 @@
/* 17 july 2014 */ // 17 july 2014
#include "winapi_windows.h" #include "winapi_windows.h"
#include "_cgo_export.h" #include "_cgo_export.h"
@ -22,13 +22,13 @@ static LRESULT CALLBACK containerWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP
data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA); data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA);
if (data == NULL) { if (data == NULL) {
/* the lpParam is available during WM_NCCREATE and WM_CREATE */ // the lpParam is available during WM_NCCREATE and WM_CREATE
if (uMsg == WM_NCCREATE) { if (uMsg == WM_NCCREATE) {
storelpParam(hwnd, lParam); storelpParam(hwnd, lParam);
data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA); data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA);
storeContainerHWND(data, hwnd); storeContainerHWND(data, hwnd);
} }
/* act as if we're not ready yet, even during WM_NCCREATE (nothing important to the switch statement below happens here anyway) */ // act as if we're not ready yet, even during WM_NCCREATE (nothing important to the switch statement below happens here anyway)
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);
} }
@ -46,7 +46,7 @@ static LRESULT CALLBACK containerWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);
} }
xmissedmsg("container", "containerWndProc()", uMsg); xmissedmsg("container", "containerWndProc()", uMsg);
return 0; /* unreached */ return 0; // unreached
} }
DWORD makeContainerWindowClass(char **errmsg) DWORD makeContainerWindowClass(char **errmsg)

View File

@ -1,4 +1,4 @@
/* 17 july 2014 */ // 17 july 2014
#include "winapi_windows.h" #include "winapi_windows.h"
#include "_cgo_export.h" #include "_cgo_export.h"
@ -13,12 +13,10 @@ HWND newControl(LPWSTR class, DWORD style, DWORD extstyle)
style | WS_CHILD | WS_VISIBLE, style | WS_CHILD | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
/* // the following has the consequence of making the control message-only at first
the following has the consequence of making the control message-only at first // this shouldn't cause any problems... hopefully not
this shouldn't cause any problems... hopefully not // but see the msgwndproc() for caveat info
but see the msgwndproc() for caveat info // also don't use low control IDs as they will conflict with dialog boxes (IDCANCEL, etc.)
also don't use low control IDs as they will conflict with dialog boxes (IDCANCEL, etc.)
*/
msgwin, (HMENU) 100, hInstance, NULL); msgwin, (HMENU) 100, hInstance, NULL);
if (hwnd == NULL) if (hwnd == NULL)
xpanic("error creating control", GetLastError()); xpanic("error creating control", GetLastError());
@ -44,7 +42,7 @@ LRESULT forwardCommand(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
HWND control = (HWND) lParam; HWND control = (HWND) lParam;
/* don't generate an event if the control (if there is one) is unparented (a child of the message-only window) */ // don't generate an event if the control (if there is one) is unparented (a child of the message-only window)
if (control != NULL && IsChild(msgwin, control) == 0) if (control != NULL && IsChild(msgwin, control) == 0)
return SendMessageW(control, msgCOMMAND, wParam, lParam); return SendMessageW(control, msgCOMMAND, wParam, lParam);
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);
@ -55,7 +53,7 @@ LRESULT forwardNotify(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
NMHDR *nmhdr = (NMHDR *) lParam; NMHDR *nmhdr = (NMHDR *) lParam;
HWND control = nmhdr->hwndFrom; HWND control = nmhdr->hwndFrom;
/* don't generate an event if the control (if there is one) is unparented (a child of the message-only window) */ // don't generate an event if the control (if there is one) is unparented (a child of the message-only window)
if (control != NULL && IsChild(msgwin, control) == 0) if (control != NULL && IsChild(msgwin, control) == 0)
return SendMessageW(control, msgNOTIFY, wParam, lParam); return SendMessageW(control, msgNOTIFY, wParam, lParam);
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);

View File

@ -1,4 +1,4 @@
/* 16 march 2014 */ // 16 march 2014
#ifndef __GO_UI_GTK_UNIX_H__ #ifndef __GO_UI_GTK_UNIX_H__
#define __GO_UI_GTK_UNIX_H__ #define __GO_UI_GTK_UNIX_H__
@ -9,20 +9,20 @@ MAX_ALLOWED signals that programs will not use features introduced in newer vers
Thanks to desrt in irc.gimp.net/#gtk+ Thanks to desrt in irc.gimp.net/#gtk+
*/ */
/* GLib/GObject */ // GLib/GObject
#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_32 #define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_32
#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_32 #define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_32
/* GDK/GTK+ */ // GDK/GTK+
#define GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_4 #define GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_4
#define GDK_VERSION_MAX_ALLOWED GDK_VERSION_3_4 #define GDK_VERSION_MAX_ALLOWED GDK_VERSION_3_4
/* cairo has no such macros (thanks Company in irc.gimp.net/#gtk+) */ // cairo has no such macros (thanks Company in irc.gimp.net/#gtk+)
#include <stdlib.h> #include <stdlib.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
/* table_unix.c */ // table_unix.c
extern void tableAppendColumn(GtkTreeView *, gint, gchar *); extern void tableAppendColumn(GtkTreeView *, gint, gchar *);
typedef struct goTableModel goTableModel; typedef struct goTableModel goTableModel;
typedef struct goTableModelClass goTableModelClass; typedef struct goTableModelClass goTableModelClass;
@ -36,7 +36,7 @@ struct goTableModelClass {
extern goTableModel *newTableModel(void *); extern goTableModel *newTableModel(void *);
extern void tableUpdate(goTableModel *, gint, gint); extern void tableUpdate(goTableModel *, gint, gint);
/* container_unix.c */ // container_unix.c
extern GtkWidget *newContainer(void *); extern GtkWidget *newContainer(void *);
#endif #endif

View File

@ -1,4 +1,4 @@
/* 17 july 2014 */ // 17 july 2014
#include "winapi_windows.h" #include "winapi_windows.h"
@ -21,7 +21,7 @@ DWORD initWindows(char **errmsg)
STARTUPINFOW si; STARTUPINFOW si;
NONCLIENTMETRICSW ncm; NONCLIENTMETRICSW ncm;
/* WinMain() parameters */ // WinMain() parameters
hInstance = GetModuleHandleW(NULL); hInstance = GetModuleHandleW(NULL);
if (hInstance == NULL) { if (hInstance == NULL) {
*errmsg = "error getting hInstance"; *errmsg = "error getting hInstance";
@ -32,7 +32,7 @@ DWORD initWindows(char **errmsg)
if ((si.dwFlags & STARTF_USESHOWWINDOW) != 0) if ((si.dwFlags & STARTF_USESHOWWINDOW) != 0)
nCmdShow = si.wShowWindow; nCmdShow = si.wShowWindow;
/* icons and cursors */ // icons and cursors
hDefaultIcon = LoadIconW(NULL, IDI_APPLICATION); hDefaultIcon = LoadIconW(NULL, IDI_APPLICATION);
if (hDefaultIcon == NULL) { if (hDefaultIcon == NULL) {
*errmsg = "error loading default icon"; *errmsg = "error loading default icon";
@ -44,7 +44,7 @@ DWORD initWindows(char **errmsg)
return GetLastError(); return GetLastError();
} }
/* standard fonts */ // standard fonts
#define GETFONT(l, f, n) l = CreateFontIndirectW(&ncm.f); \ #define GETFONT(l, f, n) l = CreateFontIndirectW(&ncm.f); \
if (l == NULL) { \ if (l == NULL) { \
*errmsg = "error loading " n " font"; \ *errmsg = "error loading " n " font"; \

View File

@ -1,9 +1,9 @@
/* 25 july 2014 */ // 25 july 2014
#include "winapi_windows.h" #include "winapi_windows.h"
#include "_cgo_export.h" #include "_cgo_export.h"
/* provided for cgo's benefit */ // provided for cgo's benefit
LPWSTR xWC_TABCONTROL = WC_TABCONTROL; LPWSTR xWC_TABCONTROL = WC_TABCONTROL;
static LRESULT CALLBACK tabSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR id, DWORD_PTR data) static LRESULT CALLBACK tabSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR id, DWORD_PTR data)
@ -16,10 +16,10 @@ static LRESULT CALLBACK tabSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l
switch (nmhdr->code) { switch (nmhdr->code) {
case TCN_SELCHANGING: case TCN_SELCHANGING:
r = SendMessageW(hwnd, TCM_GETCURSEL, 0, 0); r = SendMessageW(hwnd, TCM_GETCURSEL, 0, 0);
if (r == (LRESULT) -1) /* no tab currently selected */ if (r == (LRESULT) -1) // no tab currently selected
return FALSE; return FALSE;
tabChanging((void *) data, r); tabChanging((void *) data, r);
return FALSE; /* allow change */ return FALSE; // allow change
case TCN_SELCHANGE: case TCN_SELCHANGE:
tabChanged((void *) data, SendMessageW(hwnd, TCM_GETCURSEL, 0, 0)); tabChanged((void *) data, SendMessageW(hwnd, TCM_GETCURSEL, 0, 0));
return 0; return 0;
@ -33,7 +33,7 @@ static LRESULT CALLBACK tabSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l
return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam); return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam);
} }
xmissedmsg("Tab", "tabSubProc()", uMsg); xmissedmsg("Tab", "tabSubProc()", uMsg);
return 0; /* unreached */ return 0; // unreached
} }
void setTabSubclass(HWND hwnd, void *data) void setTabSubclass(HWND hwnd, void *data)
@ -50,7 +50,7 @@ void tabAppend(HWND hwnd, LPWSTR name)
ZeroMemory(&item, sizeof (TCITEM)); ZeroMemory(&item, sizeof (TCITEM));
item.mask = TCIF_TEXT; item.mask = TCIF_TEXT;
item.pszText = name; item.pszText = name;
/* MSDN's example code uses the first invalid index directly for this */ // MSDN's example code uses the first invalid index directly for this
n = SendMessageW(hwnd, TCM_GETITEMCOUNT, 0, 0); n = SendMessageW(hwnd, TCM_GETITEMCOUNT, 0, 0);
if (SendMessageW(hwnd, TCM_INSERTITEM, (WPARAM) n, (LPARAM) (&item)) == (LRESULT) -1) if (SendMessageW(hwnd, TCM_INSERTITEM, (WPARAM) n, (LPARAM) (&item)) == (LRESULT) -1)
xpanic("error adding tab to Tab", GetLastError()); xpanic("error adding tab to Tab", GetLastError());
@ -58,11 +58,11 @@ void tabAppend(HWND hwnd, LPWSTR name)
void tabGetContentRect(HWND hwnd, RECT *r) void tabGetContentRect(HWND hwnd, RECT *r)
{ {
/* not &r; already a pointer (thanks MindChild in irc.efnet.net/#winprog for spotting my failure) */ // not &r; already a pointer (thanks MindChild in irc.efnet.net/#winprog for spotting my failure)
SendMessageW(hwnd, TCM_ADJUSTRECT, FALSE, (LPARAM) r); SendMessageW(hwnd, TCM_ADJUSTRECT, FALSE, (LPARAM) r);
} }
/* theoretically we don't need to iterate over every tab for this, but let's do it just to be safe */ // theoretically we don't need to iterate over every tab for this, but let's do it just to be safe
LONG tabGetTabHeight(HWND hwnd) LONG tabGetTabHeight(HWND hwnd)
{ {
RECT r; RECT r;
@ -70,7 +70,7 @@ LONG tabGetTabHeight(HWND hwnd)
LONG tallest; LONG tallest;
n = SendMessageW(hwnd, TCM_GETITEMCOUNT, 0, 0); n = SendMessageW(hwnd, TCM_GETITEMCOUNT, 0, 0);
/* if there are no tabs, then the control just draws a box over the full window rect, reserving no space for tabs; this is handled with the next line */ // if there are no tabs, then the control just draws a box over the full window rect, reserving no space for tabs; this is handled with the next line
tallest = 0; tallest = 0;
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
if (SendMessageW(hwnd, TCM_GETITEMRECT, (WPARAM) i, (LPARAM) (&r)) == FALSE) if (SendMessageW(hwnd, TCM_GETITEMRECT, (WPARAM) i, (LPARAM) (&r)) == FALSE)

View File

@ -1,6 +1,6 @@
// +build !windows,!darwin // +build !windows,!darwin
/* 29 july 2014 */ // 29 july 2014
#include "gtk_unix.h" #include "gtk_unix.h"
#include "_cgo_export.h" #include "_cgo_export.h"
@ -14,7 +14,7 @@ void tableAppendColumn(GtkTreeView *table, gint index, gchar *name)
col = gtk_tree_view_column_new_with_attributes(name, renderer, col = gtk_tree_view_column_new_with_attributes(name, renderer,
"text", index, "text", index,
NULL); NULL);
/* allow columns to be resized */ // allow columns to be resized
gtk_tree_view_column_set_resizable(col, TRUE); gtk_tree_view_column_set_resizable(col, TRUE);
gtk_tree_view_append_column(table, col); gtk_tree_view_append_column(table, col);
} }
@ -37,7 +37,7 @@ G_DEFINE_TYPE_WITH_CODE(goTableModel, goTableModel, G_TYPE_OBJECT,
static void goTableModel_init(goTableModel *t) static void goTableModel_init(goTableModel *t)
{ {
/* do nothing */ // do nothing
} }
static void goTableModel_dispose(GObject *obj) static void goTableModel_dispose(GObject *obj)
@ -50,14 +50,14 @@ static void goTableModel_finalize(GObject *obj)
G_OBJECT_CLASS(goTableModel_parent_class)->finalize(obj); G_OBJECT_CLASS(goTableModel_parent_class)->finalize(obj);
} }
/* and now for the interface function definitions */ // and now for the interface function definitions
static GtkTreeModelFlags goTableModel_get_flags(GtkTreeModel *model) static GtkTreeModelFlags goTableModel_get_flags(GtkTreeModel *model)
{ {
return GTK_TREE_MODEL_LIST_ONLY; return GTK_TREE_MODEL_LIST_ONLY;
} }
/* get_n_columns in Go */ // get_n_columns in Go
static GType goTableModel_get_column_type(GtkTreeModel *model, gint column) static GType goTableModel_get_column_type(GtkTreeModel *model, gint column)
{ {
@ -86,9 +86,9 @@ bad:
static GtkTreePath *goTableModel_get_path(GtkTreeModel *model, GtkTreeIter *iter) static GtkTreePath *goTableModel_get_path(GtkTreeModel *model, GtkTreeIter *iter)
{ {
/* note: from this point forward, the GOOD_STAMP checks ensure that the index stored in iter is nonnegative */ // note: from this point forward, the GOOD_STAMP checks ensure that the index stored in iter is nonnegative
if (iter->stamp != GOOD_STAMP) if (iter->stamp != GOOD_STAMP)
return NULL; /* this is what both GtkListStore and GtkTreeStore do */ return NULL; // this is what both GtkListStore and GtkTreeStore do
return gtk_tree_path_new_from_indices(FROM(iter->user_data), -1); return gtk_tree_path_new_from_indices(FROM(iter->user_data), -1);
} }
@ -98,10 +98,10 @@ static void goTableModel_get_value(GtkTreeModel *model, GtkTreeIter *iter, gint
gchar *str; gchar *str;
if (iter->stamp != GOOD_STAMP) if (iter->stamp != GOOD_STAMP)
return; /* this is what both GtkListStore and GtkTreeStore do */ return; // this is what both GtkListStore and GtkTreeStore do
/* we (actually cgo) allocated str with malloc(), not g_malloc(), so let's free it explicitly and give the GValue a copy to be safe */ // we (actually cgo) allocated str with malloc(), not g_malloc(), so let's free it explicitly and give the GValue a copy to be safe
str = goTableModel_do_get_value(t->gotable, FROM(iter->user_data), column); str = goTableModel_do_get_value(t->gotable, FROM(iter->user_data), column);
/* value is uninitialized */ // value is uninitialized
g_value_init(value, G_TYPE_STRING); g_value_init(value, G_TYPE_STRING);
g_value_set_string(value, str); g_value_set_string(value, str);
free(str); free(str);
@ -113,7 +113,7 @@ static gboolean goTableModel_iter_next(GtkTreeModel *model, GtkTreeIter *iter)
gint index; gint index;
if (iter->stamp != GOOD_STAMP) if (iter->stamp != GOOD_STAMP)
return FALSE; /* this is what both GtkListStore and GtkTreeStore do */ return FALSE; // this is what both GtkListStore and GtkTreeStore do
index = FROM(iter->user_data); index = FROM(iter->user_data);
index++; index++;
if (index >= goTableModel_getRowCount(t->gotable)) { if (index >= goTableModel_getRowCount(t->gotable)) {
@ -130,7 +130,7 @@ static gboolean goTableModel_iter_previous(GtkTreeModel *model, GtkTreeIter *ite
gint index; gint index;
if (iter->stamp != GOOD_STAMP) if (iter->stamp != GOOD_STAMP)
return FALSE; /* this is what both GtkListStore and GtkTreeStore do */ return FALSE; // this is what both GtkListStore and GtkTreeStore do
index = FROM(iter->user_data); index = FROM(iter->user_data);
if (index <= 0) { if (index <= 0) {
iter->stamp = BAD_STAMP; iter->stamp = BAD_STAMP;
@ -187,11 +187,11 @@ static gboolean goTableModel_iter_parent(GtkTreeModel *model, GtkTreeIter *paren
return FALSE; return FALSE;
} }
/* end of interface definitions */ // end of interface definitions
static void goTableModel_initGtkTreeModel(GtkTreeModelIface *interface) static void goTableModel_initGtkTreeModel(GtkTreeModelIface *interface)
{ {
/* don't chain; we have nothing to chain to */ // don't chain; we have nothing to chain to
#define DEF(x) interface->x = goTableModel_ ## x; #define DEF(x) interface->x = goTableModel_ ## x;
DEF(get_flags) DEF(get_flags)
DEF(get_n_columns) DEF(get_n_columns)
@ -206,7 +206,7 @@ static void goTableModel_initGtkTreeModel(GtkTreeModelIface *interface)
DEF(iter_n_children) DEF(iter_n_children)
DEF(iter_nth_child) DEF(iter_nth_child)
DEF(iter_parent) DEF(iter_parent)
/* no need for ref_node and unref_node */ // no need for ref_node and unref_node
} }
static GParamSpec *goTableModelProperties[2]; static GParamSpec *goTableModelProperties[2];
@ -247,7 +247,7 @@ goTableModel *newTableModel(void *gotable)
return (goTableModel *) g_object_new(goTableModel_get_type(), "gotable", (gpointer) gotable, NULL); return (goTableModel *) g_object_new(goTableModel_get_type(), "gotable", (gpointer) gotable, NULL);
} }
/* somewhat naive, but the only alternatives seem to be unloading/reloading the model (or the view!), which is bleh */ // somewhat naive, but the only alternatives seem to be unloading/reloading the model (or the view!), which is bleh
void tableUpdate(goTableModel *t, gint old, gint new) void tableUpdate(goTableModel *t, gint old, gint new)
{ {
gint i; gint i;
@ -256,7 +256,7 @@ void tableUpdate(goTableModel *t, gint old, gint new)
GtkTreeIter iter; GtkTreeIter iter;
iter.stamp = GOOD_STAMP; iter.stamp = GOOD_STAMP;
/* first, append extra items */ // first, append extra items
if (old < new) { if (old < new) {
for (i = old; i < new; i++) { for (i = old; i < new; i++) {
path = gtk_tree_path_new_from_indices(i, -1); path = gtk_tree_path_new_from_indices(i, -1);
@ -266,18 +266,18 @@ void tableUpdate(goTableModel *t, gint old, gint new)
nUpdate = old; nUpdate = old;
} else } else
nUpdate = new; nUpdate = new;
/* next, update existing items */ // next, update existing items
for (i = 0; i < nUpdate; i++) { for (i = 0; i < nUpdate; i++) {
path = gtk_tree_path_new_from_indices(i, -1); path = gtk_tree_path_new_from_indices(i, -1);
iter.user_data = TO(i); iter.user_data = TO(i);
g_signal_emit_by_name(t, "row-updated", path, &iter); g_signal_emit_by_name(t, "row-updated", path, &iter);
} }
/* finally, remove deleted items */ // finally, remove deleted items
if (old > new) if (old > new)
for (i = new; i < old; i++) { for (i = new; i < old; i++) {
/* note that we repeatedly remove the row at index new, as that changes with each removal; NOT i */ // note that we repeatedly remove the row at index new, as that changes with each removal; NOT i
path = gtk_tree_path_new_from_indices(new, -1); path = gtk_tree_path_new_from_indices(new, -1);
/* row-deleted has no iter */ // row-deleted has no iter
g_signal_emit_by_name(t, "row-deleted", path); g_signal_emit_by_name(t, "row-deleted", path);
} }
} }

View File

@ -1,9 +1,9 @@
/* 28 july 2014 */ // 28 july 2014
#include "winapi_windows.h" #include "winapi_windows.h"
#include "_cgo_export.h" #include "_cgo_export.h"
/* provided for cgo's benefit */ // provided for cgo's benefit
LPWSTR xWC_LISTVIEW = WC_LISTVIEW; LPWSTR xWC_LISTVIEW = WC_LISTVIEW;
static LRESULT CALLBACK tableSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR id, DWORD_PTR data) static LRESULT CALLBACK tableSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR id, DWORD_PTR data)
@ -19,8 +19,8 @@ static LRESULT CALLBACK tableSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM
return 0; return 0;
} }
return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam); return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam);
/* see table.autoresize() in table_windows.go for the column autosize policy */ // see table.autoresize() in table_windows.go for the column autosize policy
case WM_NOTIFY: /* from the contained header control */ case WM_NOTIFY: // from the contained header control
if (nmhdr->code == HDN_BEGINTRACK) if (nmhdr->code == HDN_BEGINTRACK)
tableStopColumnAutosize((void *) data); tableStopColumnAutosize((void *) data);
return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam); return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam);
@ -32,7 +32,7 @@ static LRESULT CALLBACK tableSubProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM
return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam); return (*fv_DefSubclassProc)(hwnd, uMsg, wParam, lParam);
} }
xmissedmsg("Button", "tableSubProc()", uMsg); xmissedmsg("Button", "tableSubProc()", uMsg);
return 0; /* unreached */ return 0; // unreached
} }
void setTableSubclass(HWND hwnd, void *data) void setTableSubclass(HWND hwnd, void *data)
@ -63,7 +63,7 @@ void tableUpdate(HWND hwnd, int nItems)
void tableAddExtendedStyles(HWND hwnd, LPARAM styles) void tableAddExtendedStyles(HWND hwnd, LPARAM styles)
{ {
/* the bits of WPARAM specify which bits of LPARAM to look for; having WPARAM == LPARAM ensures that only the bits we want to add are affected */ // the bits of WPARAM specify which bits of LPARAM to look for; having WPARAM == LPARAM ensures that only the bits we want to add are affected
SendMessageW(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, (WPARAM) styles, styles); SendMessageW(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, (WPARAM) styles, styles);
} }

View File

@ -1,9 +1,9 @@
/* 17 july 2014 */ // 17 july 2014
#include "winapi_windows.h" #include "winapi_windows.h"
#include "_cgo_export.h" #include "_cgo_export.h"
/* note that this includes the terminating '\0' */ // note that this includes the terminating '\0'
#define NAREACLASS (sizeof areaWindowClass / sizeof areaWindowClass[0]) #define NAREACLASS (sizeof areaWindowClass / sizeof areaWindowClass[0])
void uimsgloop(void) void uimsgloop(void)
@ -19,7 +19,7 @@ void uimsgloop(void)
res = GetMessageW(&msg, NULL, 0, 0); res = GetMessageW(&msg, NULL, 0, 0);
if (res < 0) if (res < 0)
xpanic("error calling GetMessage()", GetLastError()); xpanic("error calling GetMessage()", GetLastError());
if (res == 0) /* WM_QUIT */ if (res == 0) // WM_QUIT
break; break;
active = GetActiveWindow(); active = GetActiveWindow();
if (active != NULL) { if (active != NULL) {
@ -70,7 +70,7 @@ static LRESULT CALLBACK msgwinproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);
} }
xmissedmsg("message-only", "msgwinproc()", uMsg); xmissedmsg("message-only", "msgwinproc()", uMsg);
return 0; /* unreachable */ return 0; // unreachable
} }
DWORD makemsgwin(char **errmsg) DWORD makemsgwin(char **errmsg)

View File

@ -1,6 +1,6 @@
/* 17 july 2014 */ // 17 july 2014
/* cgo will include this file multiple times */ // cgo will include this file multiple times
#ifndef __GO_UI_WINAPI_WINDOWS_H__ #ifndef __GO_UI_WINAPI_WINDOWS_H__
#define __GO_UI_WINAPI_WINDOWS_H__ #define __GO_UI_WINAPI_WINDOWS_H__
@ -8,7 +8,7 @@
#define _UNICODE #define _UNICODE
#define STRICT #define STRICT
#define STRICT_TYPED_ITEMIDS #define STRICT_TYPED_ITEMIDS
/* get Windows version right; right now Windows XP */ // get Windows version right; right now Windows XP
#define WINVER 0x0501 #define WINVER 0x0501
#define _WIN32_WINNT 0x0501 #define _WIN32_WINNT 0x0501
#define _WIN32_WINDOWS 0x0501 /* according to Microsoft's winperf.h */ #define _WIN32_WINDOWS 0x0501 /* according to Microsoft's winperf.h */
@ -22,29 +22,29 @@
#include <wchar.h> #include <wchar.h>
#include <windowsx.h> #include <windowsx.h>
/* global messages unique to everything */ // global messages unique to everything
enum { enum {
msgRequest = WM_APP + 1, /* + 1 just to be safe */ msgRequest = WM_APP + 1, // + 1 just to be safe
msgCOMMAND, /* WM_COMMAND proxy; see forwardCommand() in controls_windows.go */ msgCOMMAND, // WM_COMMAND proxy; see forwardCommand() in controls_windows.go
msgNOTIFY, /* WM_NOTIFY proxy */ msgNOTIFY, // WM_NOTIFY proxy
msgAreaSizeChanged, msgAreaSizeChanged,
msgAreaRepaintAll, msgAreaRepaintAll,
}; };
/* uitask_windows.c */ // uitask_windows.c
extern void uimsgloop(void); extern void uimsgloop(void);
extern void issue(void *); extern void issue(void *);
extern HWND msgwin; extern HWND msgwin;
extern DWORD makemsgwin(char **); extern DWORD makemsgwin(char **);
/* comctl32_windows.c */ // comctl32_windows.c
extern DWORD initCommonControls(char **); extern DWORD initCommonControls(char **);
/* these are listed as WINAPI in both Microsoft's and MinGW's headers, but not on MSDN for some reason */ // these are listed as WINAPI in both Microsoft's and MinGW's headers, but not on MSDN for some reason
extern BOOL (*WINAPI fv_SetWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR); extern BOOL (*WINAPI fv_SetWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR);
extern BOOL (*WINAPI fv_RemoveWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR); extern BOOL (*WINAPI fv_RemoveWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR);
extern LRESULT (*WINAPI fv_DefSubclassProc)(HWND, UINT, WPARAM, LPARAM); extern LRESULT (*WINAPI fv_DefSubclassProc)(HWND, UINT, WPARAM, LPARAM);
/* control_windows.c */ // control_windows.c
extern HWND newControl(LPWSTR, DWORD, DWORD); extern HWND newControl(LPWSTR, DWORD, DWORD);
extern void controlSetParent(HWND, HWND); extern void controlSetParent(HWND, HWND);
extern void controlSetControlFont(HWND); extern void controlSetControlFont(HWND);
@ -53,13 +53,13 @@ extern LRESULT forwardNotify(HWND, UINT, WPARAM, LPARAM);
extern void moveWindow(HWND, int, int, int, int); extern void moveWindow(HWND, int, int, int, int);
extern LONG controlTextLength(HWND, LPWSTR); extern LONG controlTextLength(HWND, LPWSTR);
/* basicctrls_windows.c */ // basicctrls_windows.c
extern void setButtonSubclass(HWND, void *); extern void setButtonSubclass(HWND, void *);
extern void setCheckboxSubclass(HWND, void *); extern void setCheckboxSubclass(HWND, void *);
extern BOOL checkboxChecked(HWND); extern BOOL checkboxChecked(HWND);
extern void checkboxSetChecked(HWND, BOOL); extern void checkboxSetChecked(HWND, BOOL);
/* init_windows.c */ // init_windows.c
extern HINSTANCE hInstance; extern HINSTANCE hInstance;
extern int nCmdShow; extern int nCmdShow;
extern HICON hDefaultIcon; extern HICON hDefaultIcon;
@ -72,26 +72,26 @@ extern HFONT statusbarFont;
extern HBRUSH hollowBrush; extern HBRUSH hollowBrush;
extern DWORD initWindows(char **); extern DWORD initWindows(char **);
/* window_windows.c */ // window_windows.c
extern DWORD makeWindowWindowClass(char **); extern DWORD makeWindowWindowClass(char **);
extern HWND newWindow(LPWSTR, int, int, void *); extern HWND newWindow(LPWSTR, int, int, void *);
extern void windowClose(HWND); extern void windowClose(HWND);
/* common_windows.c */ // common_windows.c
extern LRESULT getWindowTextLen(HWND); extern LRESULT getWindowTextLen(HWND);
extern void getWindowText(HWND, WPARAM, LPWSTR); extern void getWindowText(HWND, WPARAM, LPWSTR);
extern void setWindowText(HWND, LPWSTR); extern void setWindowText(HWND, LPWSTR);
extern void updateWindow(HWND); extern void updateWindow(HWND);
extern void storelpParam(HWND, LPARAM); extern void storelpParam(HWND, LPARAM);
/* tab_windows.go */ // tab_windows.go
extern LPWSTR xWC_TABCONTROL; extern LPWSTR xWC_TABCONTROL;
extern void setTabSubclass(HWND, void *); extern void setTabSubclass(HWND, void *);
extern void tabAppend(HWND, LPWSTR); extern void tabAppend(HWND, LPWSTR);
extern void tabGetContentRect(HWND, RECT *); extern void tabGetContentRect(HWND, RECT *);
extern LONG tabGetTabHeight(HWND); extern LONG tabGetTabHeight(HWND);
/* table_windows.go */ // table_windows.go
extern LPWSTR xWC_LISTVIEW; extern LPWSTR xWC_LISTVIEW;
extern void setTableSubclass(HWND, void *); extern void setTableSubclass(HWND, void *);
extern void tableAppendColumn(HWND, int, LPWSTR); extern void tableAppendColumn(HWND, int, LPWSTR);
@ -99,12 +99,12 @@ extern void tableUpdate(HWND, int);
extern void tableAddExtendedStyles(HWND, LPARAM); extern void tableAddExtendedStyles(HWND, LPARAM);
extern void tableAutosizeColumns(HWND, int); extern void tableAutosizeColumns(HWND, int);
/* container_windows.c */ // container_windows.c
extern DWORD makeContainerWindowClass(char **); extern DWORD makeContainerWindowClass(char **);
extern HWND newContainer(void *); extern HWND newContainer(void *);
extern void calculateBaseUnits(HWND, int *, int *, LONG *); extern void calculateBaseUnits(HWND, int *, int *, LONG *);
/* area_window.c */ // area_window.c
#define areaWindowClass L"gouiarea" #define areaWindowClass L"gouiarea"
extern void repaintArea(HWND); extern void repaintArea(HWND);
extern DWORD makeAreaWindowClass(char **); extern DWORD makeAreaWindowClass(char **);

View File

@ -1,4 +1,4 @@
/* 17 july 2014 */ // 17 july 2014
#include "winapi_windows.h" #include "winapi_windows.h"
#include "_cgo_export.h" #include "_cgo_export.h"
@ -12,13 +12,13 @@ static LRESULT CALLBACK windowWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARA
data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA); data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA);
if (data == NULL) { if (data == NULL) {
/* the lpParam is available during WM_NCCREATE and WM_CREATE */ // the lpParam is available during WM_NCCREATE and WM_CREATE
if (uMsg == WM_NCCREATE) { if (uMsg == WM_NCCREATE) {
storelpParam(hwnd, lParam); storelpParam(hwnd, lParam);
data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA); data = (void *) GetWindowLongPtrW(hwnd, GWLP_USERDATA);
storeWindowHWND(data, hwnd); storeWindowHWND(data, hwnd);
} }
/* act as if we're not ready yet, even during WM_NCCREATE (nothing important to the switch statement below happens here anyway) */ // act as if we're not ready yet, even during WM_NCCREATE (nothing important to the switch statement below happens here anyway)
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);
} }
@ -39,7 +39,7 @@ static LRESULT CALLBACK windowWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARA
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);
} }
xmissedmsg("Window", "windowWinProc()", uMsg); xmissedmsg("Window", "windowWinProc()", uMsg);
return 0; /* unreached */ return 0; // unreached
} }
DWORD makeWindowWindowClass(char **errmsg) DWORD makeWindowWindowClass(char **errmsg)