summaryrefslogtreecommitdiffhomepage
path: root/Public/Developer/System.Core/Headers/Window
diff options
context:
space:
mode:
Diffstat (limited to 'Public/Developer/System.Core/Headers/Window')
-rw-r--r--Public/Developer/System.Core/Headers/Window/Image.hxx1
-rw-r--r--Public/Developer/System.Core/Headers/Window/Menu.hxx1
-rw-r--r--Public/Developer/System.Core/Headers/Window/Rsrc.hxx1
-rw-r--r--Public/Developer/System.Core/Headers/Window/TrueType.hxx2
-rw-r--r--Public/Developer/System.Core/Headers/Window/Window.hxx78
5 files changed, 78 insertions, 5 deletions
diff --git a/Public/Developer/System.Core/Headers/Window/Image.hxx b/Public/Developer/System.Core/Headers/Window/Image.hxx
index 2a02b434..3e445532 100644
--- a/Public/Developer/System.Core/Headers/Window/Image.hxx
+++ b/Public/Developer/System.Core/Headers/Window/Image.hxx
@@ -6,3 +6,4 @@
#pragma once
+#include <System.Core/Headers/Window/Window.hxx>
diff --git a/Public/Developer/System.Core/Headers/Window/Menu.hxx b/Public/Developer/System.Core/Headers/Window/Menu.hxx
index 2a02b434..3e445532 100644
--- a/Public/Developer/System.Core/Headers/Window/Menu.hxx
+++ b/Public/Developer/System.Core/Headers/Window/Menu.hxx
@@ -6,3 +6,4 @@
#pragma once
+#include <System.Core/Headers/Window/Window.hxx>
diff --git a/Public/Developer/System.Core/Headers/Window/Rsrc.hxx b/Public/Developer/System.Core/Headers/Window/Rsrc.hxx
index 2a02b434..3e445532 100644
--- a/Public/Developer/System.Core/Headers/Window/Rsrc.hxx
+++ b/Public/Developer/System.Core/Headers/Window/Rsrc.hxx
@@ -6,3 +6,4 @@
#pragma once
+#include <System.Core/Headers/Window/Window.hxx>
diff --git a/Public/Developer/System.Core/Headers/Window/TrueType.hxx b/Public/Developer/System.Core/Headers/Window/TrueType.hxx
index 62ed1255..3e445532 100644
--- a/Public/Developer/System.Core/Headers/Window/TrueType.hxx
+++ b/Public/Developer/System.Core/Headers/Window/TrueType.hxx
@@ -5,3 +5,5 @@
------------------------------------------- */
#pragma once
+
+#include <System.Core/Headers/Window/Window.hxx>
diff --git a/Public/Developer/System.Core/Headers/Window/Window.hxx b/Public/Developer/System.Core/Headers/Window/Window.hxx
index 1a8c6cf6..5eb1b3ce 100644
--- a/Public/Developer/System.Core/Headers/Window/Window.hxx
+++ b/Public/Developer/System.Core/Headers/Window/Window.hxx
@@ -9,15 +9,15 @@
#include <System.Core/Headers/Defines.hxx>
/// @file Window.hxx
-/// @brief Tracker window manager.
+/// @brief Tracker window protocol.
/// @author Amlal El Mahrouss.
typedef float PositionType;
/// @brief A point, can represent the size, position of a window.
-typedef struct _Point {
+typedef struct _GraphicsPoint {
PositionType X, Y;
-} Point;
+} GraphicsPoint;
/// @brief Tracker Graphics port.
typedef struct _GraphicsPort {
@@ -29,10 +29,78 @@ typedef struct _GraphicsPort {
BooleanType windowMoving;
BooleanType windowDisableClose;
BooleanType windowDisableMinimize;
- Point windowPosition;
- Point windowSize;
+ GraphicsPoint windowPosition;
+ GraphicsPoint windowSize;
BooleanType windowInvalidate;
DWordType windowClearColor;
WordType menuPort;
WordType parentPort;
} GraphicsPort;
+
+typedef UInt32Type ColorRef;
+
+/***********************************************************************************/
+/// Color utils.
+/***********************************************************************************/
+
+const ColorRef kRgbRed = 0x000000FF;
+const ColorRef kRgbGreen = 0x0000FF00;
+const ColorRef kRgbBlue = 0x00FF0000;
+const ColorRef kRgbBlack = 0x00000000;
+const ColorRef kRgbWhite = 0xFFFFFFFF;
+
+/***********************************************************************************/
+/// Color macro.
+/***********************************************************************************/
+
+#define RGB32(R, G, B) (ColorRef)(0x##R##G##B)
+
+#define kGraphicsKindWindow 0
+#define kGraphicsKindDialog 1
+#define kGraphicsKindMenu 2
+#define kGraphicsKindButton 3
+#define kGraphicsKindLabel 4
+#define kGraphicsKindDropdown 5
+#define kGraphicsKindIcon 6
+#define kGraphicsKindRadio 7
+#define kGraphicsKindCheck 7
+
+typedef QWordType ControlRef;
+
+/// @brief Creates a new control
+/// @param id the control rsrc fork.
+/// @return
+CA_EXTERN_C ControlRef CreateControl(const DWordType id);
+
+/// @brief Releases the control
+/// @param id the control ref.
+/// @return
+CA_EXTERN_C VoidType ReleaseControl(const ControlRef id);
+
+CA_EXTERN_C BooleanType MoveControl(const ControlRef id, GraphicsPoint where);
+
+CA_EXTERN_C BooleanType EnableControl(const ControlRef id, BooleanType visible);
+
+CA_EXTERN_C BooleanType VisibleControl(const ControlRef id, BooleanType visible);
+
+/// @brief Creates a new window.
+/// @param name the window name
+/// @param rsrcId the window fork rsrc id.
+/// @return the window graphics port.
+CA_EXTERN_C GraphicsPort* CreateWindow(const char* name, const DWordType rsrcId);
+
+/// @brief Creates a new menu
+/// @param name the menu's name
+/// @param rsrcId the menu fork rsrc id.
+/// @return the menu graphics port.
+CA_EXTERN_C GraphicsPort* CreateMenu(const char* name, const DWordType rsrcId);
+
+/// @brief Releases the window.
+/// @param port the window port.
+/// @return void
+CA_EXTERN_C VoidType ReleaseWindow(GraphicsPort* port);
+
+/// @brief Releases the menu
+/// @param port the menu port.
+/// @return void
+CA_EXTERN_C VoidType ReleaseMenu(GraphicsPort* port);