commit basics of project
This commit is contained in:
commit
e3bb1f9a28
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
bin/
|
||||
build/
|
||||
24
CMakeLists.txt
Normal file
24
CMakeLists.txt
Normal file
@ -0,0 +1,24 @@
|
||||
# Specify the minimum required version of CMake
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
# Set the project name and version
|
||||
project(MessiVsRonaldo VERSION 1.0)
|
||||
|
||||
# Specify the C++ standard (e.g., C++17)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
|
||||
# Set the output directory for the executable
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||
|
||||
# Automatically find all .cpp files in the src directory
|
||||
file(GLOB SOURCES "src/*.cpp")
|
||||
|
||||
# Add an executable target
|
||||
add_executable(MessiVsRonaldo ${SOURCES})
|
||||
|
||||
# Include the "include" directory (if you have header files)
|
||||
target_include_directories(MessiVsRonaldo PUBLIC ${CMAKE_SOURCE_DIR}/include)
|
||||
0
CMakePresets.json
Normal file
0
CMakePresets.json
Normal file
46
src/main.cpp
Normal file
46
src/main.cpp
Normal file
@ -0,0 +1,46 @@
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
// Tells msvc compiler to not show the console window
|
||||
#pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
|
||||
|
||||
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
void showMessageBox(Display *display, const char *title, const char *message);
|
||||
#endif
|
||||
|
||||
int main(){
|
||||
|
||||
#ifdef _WIN32
|
||||
HINSTANCE hInstance = GetModuleHandle(nullptr);
|
||||
|
||||
LPSTR lpCmdLine = GetCommandLineA();
|
||||
|
||||
return WinMain(hInstance, nullptr, lpCmdLine, SW_SHOWDEFAULT);
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
Display *display = XOpenDisplay(NULL);
|
||||
if (!display) {
|
||||
fprintf(stderr, "Unable to open X display\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Show the message box
|
||||
showMessageBox(display, "X11 Message Box", "Hello, X11!");
|
||||
|
||||
// Close the connection to the X server
|
||||
XCloseDisplay(display);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
10
src/winmain.cpp
Normal file
10
src/winmain.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
|
||||
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
|
||||
MessageBox(nullptr, "Hello, World!", "Win32 Application", MB_OK);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
56
src/xeleven.cpp
Normal file
56
src/xeleven.cpp
Normal file
@ -0,0 +1,56 @@
|
||||
|
||||
#ifdef __linux__
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
// Function to display a message box
|
||||
void showMessageBox(Display *display, const char *title, const char *message) {
|
||||
// Open a connection to the X server
|
||||
int screen = DefaultScreen(display);
|
||||
|
||||
// Create a simple window
|
||||
Window window = XCreateSimpleWindow(
|
||||
display, RootWindow(display, screen),
|
||||
100, 100, 400, 200, 1,
|
||||
BlackPixel(display, screen), WhitePixel(display, screen)
|
||||
);
|
||||
|
||||
// Set the window title
|
||||
XStoreName(display, window, title);
|
||||
|
||||
// Select events to handle
|
||||
XSelectInput(display, window, ExposureMask | KeyPressMask);
|
||||
|
||||
// Create a graphics context for drawing
|
||||
GC gc = XCreateGC(display, window, 0, NULL);
|
||||
|
||||
// Map the window (make it visible)
|
||||
XMapWindow(display, window);
|
||||
|
||||
// Event loop
|
||||
XEvent event;
|
||||
while (1) {
|
||||
XNextEvent(display, &event);
|
||||
|
||||
// Handle expose event (window needs to be redrawn)
|
||||
if (event.type == Expose) {
|
||||
// Draw the message in the window
|
||||
XDrawString(display, window, gc, 50, 100, message, strlen(message));
|
||||
}
|
||||
|
||||
// Handle key press event (close the window)
|
||||
if (event.type == KeyPress) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Clean up
|
||||
XFreeGC(display, gc);
|
||||
XDestroyWindow(display, window);
|
||||
}
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue
Block a user