Tag: C++

C++ programming language.

  • Dev blog #1: Watchlist

    I’m working on an app that would keep track of what episodes I watched of YouTube/TV series.

    It’s going oki. I’m just not really focused on it that much (or on the code part of things, at least).

    I also figured out a good way to do headers & documentation comments. (finally)

    /* ================================================================================
    *
    *	$Project: Watchlist
    *
    *	$Module: Logic
    *	$File: application.h
    *
    *	$Purpose: Defines the application structure and its associated functions. The
    *	application is responsible for managing the main loop and handling
    *	application-wide resources.
    *
    *	$License: MIT
    *	$Author: The Kumor
    *
    * ================================================================================ */
    /* ------------------------------------------------------------------------
    *	$Name: wht_Text_Init
    *
    *	$Purpose: Initializes a text control with the specified parameters and
    *	creates the control's window as a child of the specified parent control.
    * 
    *	$Parameters:
    *	self: Pointer to the control to be initialized.
    *	x: The x-coordinate of the control's position.
    *	y: The y-coordinate of the control's position.
    *	w: The width of the control.
    *	h: The height of the control.
    *	text: The text to be displayed in the control.
    * ------------------------------------------------------------------------ */
    void wht_Text_Init(wht_Control* self, i32 x, i32 y, i32 w, i32 h, str text, wht_Control* parent);
    /* ------------------------------------------------------------------------
    *	$Name: wht_Window
    * 
    *	$Purpose: Window structure for encapsulating properties specific to a
    *	window control, inheriting from the base control structure.
    * 
    *	$Members:
    *	Control: The base control structure for the window,
    *	containing common control properties.
    * ------------------------------------------------------------------------ */
    typedef struct
    {
    	wht_Control Control;
    } wht_Window;
    /* ------------------------------------------------------------------------
    *	$Name: wht_Control
    * 
    *	$Purpose: Control structure for encapsulating common control properties.
    * ------------------------------------------------------------------------ */
    typedef struct
    {
    	HWND m_Handle;
    	i32 m_X, m_Y;
    	str m_Text;
    } wht_Control;

    Before I make some structs opaque, I’ll leave these variables with m_ prefixes available. But they’re not considered in headers.

    I’ll create a documentation software that would parse these comments and C/C++/Lua/etc code and produce a searchable database of things. It’ll also include “sections” ($Section) blocks. But that’s a different project, and isn’t my immediate focus (perhaps late April?)

    I figured out IntelliSense at least doesn’t break with these. And as for Visual Studio Code, it even picks up $Parameters section and makes this particular line bigger.

    Visual Studio 2022’s autofill / AI is writing 50% of these comments. I also do readmes based on project reports which are partially generated by AI (I mean, 28 pages is a lot of manual labor!). But projects themselves are written fully by me, with help of the autofill for mundane tasks. I’m kind of scared people will look at these projects and be like “lol, that readme’s made by chatgpt” and assume project wasn’t done by a human. But I try not to care. People will say what they want, and in the end, I write code by myself.

    I post a cat here, because I can.

  • Dev blog #5: Garden

    Finally released!

    Description

    Application consists of field and side menu. In the side menu, user chooses a vegetable/fruit to plant. Each plant has an image and name associated with them. Polish and English being the supported languages. Once planted, field recalculates an area trying to find if plants around like it.

    Features

    Application contains plant database. App allows resizing, saving and loading plant fields

    Software & Hardware Requirements

    Insanely low, anyone with potato PC can run it. There’s a caveat though: it only runs under Windows due to WinAPI being the only system-level API.

    Download

    Releases
    Repository

  • Dev blog #4: Garden

    This is the work so far. I am quite satisfied with this vegetable sheet, given I don’t have drawing skills (except for maps).

    I’m hoping to finish this before March. Not going to lie, this app gives me Windows 3.1 feel due to GDI. And I kind of like it.

    While image rendering might not be the most perfect thing in the world, it’s better than nothing.

  • Rendering a .png

    I managed to render it inside a WinAPI app. It’s a quick one, just to test for the actual application, which is Garden.
    You can check out the test app here.

    Gray, RGB(64, 64, 64) is app’s background color. If you ever need help with how to merge stbi_image and Win32, the repo is for you!

  • Dev blog #3: Garden

    Finally made WinAPI display a bitmap.

  • Dev blog #2: Garden

    I’ve decided this will be Garden’s application icon

    This is the best I can do lol.

    So, next thing I have to do is make actual button rendering, embed Lua and I guess that’s it for now? I also have to find some good resources on vegetable neighborhood. That’s crucial.

  • Dev blog #1: Garden

    I’ve been coding this for a while, but as I said, I didn’t have much free time for these things. Now it’s changed.

    This project is primarily for my mom. She wanted an easy way to manage creation of her garden. Mainly with regards to “what vegetables can be next to XYZ”. I’m thinking of using Lua for scripting in the vegetable types and their neighborhoods.

    So far I created event system and basic field concept. They’ll have images on them and will flare up with particular color (red for bad neighborhood, orange for so-so, green for ok).

    I’m not so much in a rush, but I want to finish this thing. Check it out on it’s repo.

  • Dev blog #1: Timetables

    I released it to https://github.com/thekumor/Timetables/

    Available commands are:

    • echo [text]
    • time [hour] [hourEnd]
    • gen [file=data/output.tex]
    • exit
    • add [task] [weekday] [hour] [hourEnd=hour]
    • rem [weekday] [hour] [hourEnd=hour]
    • date [day] [month] [year]
    • desc [text]
    • erase [task]
    • clear

    A good way to generate such table is shown in the image gallery.