ui/motif/Grid.h

changeset 100
d2bd73d28ff1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/motif/Grid.h	Thu Dec 12 20:01:43 2024 +0100
@@ -0,0 +1,152 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2024 Olaf Wintermann. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef GRID_H
+#define GRID_H
+
+#include <X11/Intrinsic.h>
+#include <X11/IntrinsicP.h>
+#include <Xm/XmAll.h>
+#include <Xm/Primitive.h>
+#include <Xm/PrimitiveP.h>
+#include <Xm/ManagerP.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define gridColumn "gridColumn"
+#define gridRow "gridRow"
+#define gridColspan "gridColspan"
+#define gridRowspan "gridRowspan"
+#define gridHExpand "gridHExpand"
+#define gridVExpand "gridVExpand"
+#define gridHFill "gridHFill"
+#define gridVFill "gridVFill"
+#define gridMarginLeft "gridMarginLeft"
+#define gridMarginRight "gridMarginRight"
+#define gridMarginTop "gridMarginTop"
+#define gridMarginBottom "gridMarginBottom"
+    
+
+typedef struct GridDef {
+    Dimension size;
+    Dimension pos;
+    Boolean expand;
+} GridDef;
+    
+typedef struct GridClassPart {
+    int test;
+} GridClassPart;
+    
+typedef struct GridClassRec {
+    CoreClassPart        core_class;
+    CompositeClassPart   composite_class;
+    ConstraintClassPart  constraint_class;
+    XmManagerClassPart  manager_class;
+    GridClassPart    mywidgetclass;
+} GridClassRec;
+
+
+typedef struct GridPart {
+    int margin_left;
+    int margin_right;
+    int margin_top;
+    int margin_bottom;
+    int max_col;
+    int max_row;
+    
+    Boolean sizerequest;
+} GridPart;
+
+typedef struct GridRec {
+    CorePart	    core;
+    CompositePart   composite;
+    ConstraintPart  constraint;
+    XmManagerPart   manager;
+    GridPart    mywidget;
+} GridRec;
+
+typedef struct GridContraintPart {
+    Dimension x;
+    Dimension y;
+    Dimension margin_left;
+    Dimension margin_right;
+    Dimension margin_top;
+    Dimension margin_bottom;
+    Boolean hexpand;
+    Boolean vexpand;
+    Boolean hfill;
+    Boolean vfill;
+    Dimension colspan;
+    Dimension rowspan;
+    Dimension pref_width;
+    Dimension pref_height;
+} GridContraintPart;
+
+typedef struct GridConstraintRec {
+    XmManagerConstraintPart manager;
+    GridContraintPart grid;
+} GridConstraintRec;
+
+typedef GridRec* MyWidget;
+
+extern WidgetClass gridClass;
+
+void grid_class_initialize();
+void grid_initialize();
+void grid_realize();
+void grid_destroy();
+void grid_resize();
+void grid_expose();
+Boolean grid_set_values();
+Boolean grid_acceptfocus(Widget , Time*);
+
+void grid_place_children(MyWidget w);
+
+void grid_getfocus();
+void grid_loosefocus();
+
+void grid_constraint_init(
+    Widget	request,
+    Widget	neww,
+    ArgList	args,
+    Cardinal*	num_args
+);
+
+XtGeometryResult GridGeometryManager(Widget	widget, XtWidgetGeometry *request, XtWidgetGeometry *reply);
+void GridChangeManaged(Widget widget);
+Boolean ConstraintSetValues(Widget old, Widget request, Widget neww, ArgList args, Cardinal *num_args);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GRID_H */
+

mercurial