forked from EimaMei/Silicon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hello-world.c
50 lines (38 loc) · 1.83 KB
/
hello-world.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
Based on: https://github.com/gammasoft71/Examples_Cocoa/blob/master/src/HelloWorlds/HelloWorld/README.md
*/
#define GL_SILENCE_DEPRECATION
#define SILICON_IMPLEMENTATION
#include <silicon.h>
NSApplication* NSApp;
bool windowShouldClose(id sender) {
NSApplication_terminate(NSApp, sender);
return true;
}
int main() {
// Convert C functions to Objective-C methods (refer to the 'si_func_to_SEL' comment from 'examples/menu.c' for more).
si_func_to_SEL(SI_DEFAULT, windowShouldClose);
NSApp = NSApplication_sharedApplication();
NSApplication_setActivationPolicy(NSApp, NSApplicationActivationPolicyRegular);
NSTextField* label = NSTextField_initWithFrame(NSMakeRect(5, 100, 290, 100));
NSTextField_setStringValue(label, "Hello, World!");
NSTextField_setBezeled(label, false);
NSTextField_setDrawsBackground(label, false);
NSTextField_setEditable(label, false);
NSTextField_setSelectable(label, false);
NSTextField_setTextColor(label, NSColor_colorWithSRGB(0.0, 0.5, 0.0, 1.0));
NSFontManager* font_manager = NSFontManager_sharedFontManager();
NSFont* current_font = NSTextField_font(label);
current_font = NSFont_init(NSFont_fontName(current_font), 45);
current_font = NSFontManager_convertFontToHaveTrait(font_manager, current_font, NSFontBoldTrait);
current_font = NSFontManager_convertFontToHaveTrait(font_manager, current_font, NSFontItalicTrait);
NSTextField_setFont(label, current_font);
NSWindow* win = NSWindow_init(NSMakeRect(0, 0, 300, 300), NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable, NSBackingStoreBuffered, false);
NSWindow_setTitle(win, "Hello world (label)");
NSView_addSubview(NSWindow_contentView(win), (NSView*)label);
NSWindow_center(win);
NSWindow_setIsVisible(win, true);
NSWindow_makeMainWindow(win);
NSApplication_run(NSApp);
return 0;
}