codeberg copy
This commit is contained in:
commit
ad6cca6eee
5 changed files with 280 additions and 0 deletions
34
.gitignore
vendored
Normal file
34
.gitignore
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
# ---> C++
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Fortran module files
|
||||
*.mod
|
||||
*.smod
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
|
13
Calculator.cpp
Normal file
13
Calculator.cpp
Normal file
|
@ -0,0 +1,13 @@
|
|||
#include "Library.hpp"
|
||||
|
||||
int main()
|
||||
{
|
||||
SDL_Init(SDL_INIT_VIDEO);
|
||||
Application app;
|
||||
Button thing {30, 30, 30, 30};
|
||||
Button thing2 {120, 120, 30, 30};
|
||||
app.AddButton(thing);
|
||||
app.AddButton(thing2);
|
||||
|
||||
app.Update();
|
||||
}
|
121
LICENSE.md
Normal file
121
LICENSE.md
Normal file
|
@ -0,0 +1,121 @@
|
|||
# PolyForm Small Business License 1.0.0
|
||||
|
||||
<https://polyformproject.org/licenses/small-business/1.0.0>
|
||||
|
||||
## Acceptance
|
||||
|
||||
In order to get any license under these terms, you must agree
|
||||
to them as both strict obligations and conditions to all
|
||||
your licenses.
|
||||
|
||||
## Copyright License
|
||||
|
||||
The licensor grants you a copyright license for the
|
||||
software to do everything you might do with the software
|
||||
that would otherwise infringe the licensor's copyright
|
||||
in it for any permitted purpose. However, you may
|
||||
only distribute the software according to [Distribution
|
||||
License](#distribution-license) and make changes or new works
|
||||
based on the software according to [Changes and New Works
|
||||
License](#changes-and-new-works-license).
|
||||
|
||||
## Distribution License
|
||||
|
||||
The licensor grants you an additional copyright license
|
||||
to distribute copies of the software. Your license
|
||||
to distribute covers distributing the software with
|
||||
changes and new works permitted by [Changes and New Works
|
||||
License](#changes-and-new-works-license).
|
||||
|
||||
## Notices
|
||||
|
||||
You must ensure that anyone who gets a copy of any part of
|
||||
the software from you also gets a copy of these terms or the
|
||||
URL for them above, as well as copies of any plain-text lines
|
||||
beginning with `Required Notice:` that the licensor provided
|
||||
with the software. For example:
|
||||
|
||||
> Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
|
||||
|
||||
## Changes and New Works License
|
||||
|
||||
The licensor grants you an additional copyright license to
|
||||
make changes and new works based on the software for any
|
||||
permitted purpose.
|
||||
|
||||
## Patent License
|
||||
|
||||
The licensor grants you a patent license for the software that
|
||||
covers patent claims the licensor can license, or becomes able
|
||||
to license, that you would infringe by using the software.
|
||||
|
||||
## Fair Use
|
||||
|
||||
You may have "fair use" rights for the software under the
|
||||
law. These terms do not limit them.
|
||||
|
||||
## Small Business
|
||||
|
||||
Use of the software for the benefit of your company is use for
|
||||
a permitted purpose if your company has fewer than 100 total
|
||||
individuals working as employees and independent contractors,
|
||||
and less than 1,000,000 USD (2019) total revenue in the prior
|
||||
tax year. Adjust this revenue threshold for inflation according
|
||||
to the United States Bureau of Labor Statistics' consumer price
|
||||
index for all urban consumers, U.S. city average, for all items,
|
||||
not seasonally adjusted, with 1982–1984=100 reference base.
|
||||
|
||||
## No Other Rights
|
||||
|
||||
These terms do not allow you to sublicense or transfer any of
|
||||
your licenses to anyone else, or prevent the licensor from
|
||||
granting licenses to anyone else. These terms do not imply
|
||||
any other licenses.
|
||||
|
||||
## Patent Defense
|
||||
|
||||
If you make any written claim that the software infringes or
|
||||
contributes to infringement of any patent, your patent license
|
||||
for the software granted under these terms ends immediately. If
|
||||
your company makes such a claim, your patent license ends
|
||||
immediately for work on behalf of your company.
|
||||
|
||||
## Violations
|
||||
|
||||
The first time you are notified in writing that you have
|
||||
violated any of these terms, or done anything with the software
|
||||
not covered by your licenses, your licenses can nonetheless
|
||||
continue if you come into full compliance with these terms,
|
||||
and take practical steps to correct past violations, within
|
||||
32 days of receiving notice. Otherwise, all your licenses
|
||||
end immediately.
|
||||
|
||||
## No Liability
|
||||
|
||||
***As far as the law allows, the software comes as is, without
|
||||
any warranty or condition, and the licensor will not be liable
|
||||
to you for any damages arising out of these terms or the use
|
||||
or nature of the software, under any kind of legal claim.***
|
||||
|
||||
## Definitions
|
||||
|
||||
The **licensor** is the individual or entity offering these
|
||||
terms, and the **software** is the software the licensor makes
|
||||
available under these terms.
|
||||
|
||||
**You** refers to the individual or entity agreeing to these
|
||||
terms.
|
||||
|
||||
**Your company** is any legal entity, sole proprietorship,
|
||||
or other kind of organization that you work for, plus all
|
||||
organizations that have control over, are under the control of,
|
||||
or are under common control with that organization. **Control**
|
||||
means ownership of substantially all the assets of an entity,
|
||||
or the power to direct its management and policies by vote,
|
||||
contract, or otherwise. Control can be direct or indirect.
|
||||
|
||||
**Your licenses** are all the licenses granted to you for the
|
||||
software under these terms.
|
||||
|
||||
**Use** means anything you do with the software requiring one
|
||||
of your licenses.
|
105
Library.hpp
Normal file
105
Library.hpp
Normal file
|
@ -0,0 +1,105 @@
|
|||
#include <SDL3/SDL.h>
|
||||
#include <vector>
|
||||
#include <cstdio>
|
||||
|
||||
class Button
|
||||
{
|
||||
public:
|
||||
SDL_FRect button;
|
||||
|
||||
struct
|
||||
{
|
||||
Uint8 r = 255;
|
||||
Uint8 g = 255;
|
||||
Uint8 b = 255;
|
||||
Uint8 a = 255;
|
||||
} standard;
|
||||
struct
|
||||
{
|
||||
Uint8 r = 127;
|
||||
Uint8 g = 127;
|
||||
Uint8 b = 127;
|
||||
Uint8 a = 255;
|
||||
} hover;
|
||||
|
||||
Button(int XPosition, int YPosition, int Width, int Height)
|
||||
{
|
||||
button.h = Height;
|
||||
button.w = Width;
|
||||
button.x = XPosition;
|
||||
button.y = YPosition;
|
||||
}
|
||||
|
||||
void PressButton(SDL_Event event) {
|
||||
// If it's within the bounds
|
||||
if (event.button.x >= button.x && event.button.x <= (button.x + button.w) && event.button.y >= button.y && event.button.y <= (button.y + button.h))
|
||||
{
|
||||
printf("Button has been pressed \n");
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessButton(SDL_Renderer * renderer, SDL_Event event) {
|
||||
// Get the mouse position.
|
||||
float x, y;
|
||||
SDL_GetMouseState(&x, &y);
|
||||
// If it's within the bounds
|
||||
if (x >= button.x && x <= (button.x + button.w) && y >= button.y && y <= (button.y + button.h))
|
||||
{
|
||||
SDL_SetRenderDrawColor(renderer, hover.r, hover.g, hover.b, hover.a);
|
||||
}
|
||||
else
|
||||
{
|
||||
SDL_SetRenderDrawColor(renderer, standard.r, standard.g, standard.b, standard.a);
|
||||
}
|
||||
SDL_RenderFillRect(renderer, &button);
|
||||
}
|
||||
};
|
||||
|
||||
class Application
|
||||
{
|
||||
public:
|
||||
SDL_Window *Window;
|
||||
SDL_Event WindowEvent;
|
||||
SDL_Renderer *WindowRender;
|
||||
|
||||
std::vector<Button> buttons;
|
||||
|
||||
Application()
|
||||
{
|
||||
SDL_CreateWindowAndRenderer("Window", 680, 480, 0, &Window, &WindowRender);
|
||||
}
|
||||
|
||||
void Update() {
|
||||
bool KeepWindowOpen = true;
|
||||
while(KeepWindowOpen)
|
||||
{
|
||||
while(SDL_PollEvent(&WindowEvent))
|
||||
{
|
||||
switch(WindowEvent.type)
|
||||
{
|
||||
case SDL_EVENT_QUIT:
|
||||
KeepWindowOpen = false;
|
||||
break;
|
||||
case SDL_EVENT_MOUSE_BUTTON_DOWN:
|
||||
for (int i = 0; i < buttons.size(); i++)
|
||||
{
|
||||
buttons[i].PressButton(WindowEvent);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
SDL_SetRenderDrawColor(WindowRender, 0, 0, 0, 255);
|
||||
SDL_RenderClear(WindowRender);
|
||||
for (long unsigned int i = 0; i < buttons.size(); i++)
|
||||
{
|
||||
buttons[i].ProcessButton(WindowRender, WindowEvent);
|
||||
}
|
||||
SDL_RenderPresent(WindowRender);
|
||||
}
|
||||
}
|
||||
|
||||
void AddButton(Button butt)
|
||||
{
|
||||
buttons.push_back(butt);
|
||||
}
|
||||
};
|
7
README.md
Normal file
7
README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
# SDL_Library
|
||||
|
||||
Compile using: `g++ Calculator.cpp -o Calculator -lSDL3`.
|
||||
|
||||
In case of something going wrong: `pkg-config sdl3 --cflags --libs`.
|
||||
|
||||
Run using: `./Calculator`
|
Loading…
Add table
Reference in a new issue