Giter Site home page Giter Site logo

seeloewenlib's Introduction

๐Ÿ™‹ About Me...

I'm Louis, a hobby developer from Germany. I work on a bunch of different projects at the same time but I'm mostly known for the Random Item Giver Datapack. You should also check out my other projects though, they are great as well! Because of school, I'm not as active as I used to be but I'm still trying to get out some updates every now and then.

๐Ÿ”ง Projects that I'm working on...

My main project is currently the Random Item Giver Datapack and the Random Item Giver Updater.

My side projects are the Random Item Giver Updater Legacy, Seeloewen Sync, Seeloewen Shutdown and SeeloewenLib.

๐Ÿ’ป Environments that I'm familiar with...

.NET Markdown Notepad++ Visual Studio Code Visual Studio C# Scratch Windows

๐Ÿ“Š My Statistics...

Seeloewen's GitHub Stats

seeloewenlib's People

Contributors

seeloewen avatar

Watchers

 avatar  avatar

seeloewenlib's Issues

Delay() function

This function will allow you to schedule a function to run after a certain amount of seconds. It will do this by creating a timer and setting the timer tick rate to the given seconds. The function you've scheduled will then be run once.

The function will most likely look somewhat like this:

public void Delay (int seconds, action function)
{
     Timer tmr = new Timer();
     tmr.Interval = seconds;
     tmr.Tick+- ...
     //And so on...
}

Not sure how I'll work with the timer there, we'll see.

Allow multiple requirements for wizard

The wizard does currently only allow you to add one requirement. Adding a list of requirements that all get checked before continuing would solve this issue. Each requirement should also have its own error message.

Release Roadmap

SeeloewenLib will be a simple yet powerful library to use in C# WPF and VB WinForms. From the beginning, it will only support C# and will feature only a few tools, but more will be added over time.

The following things need be done before the first release:

  • Add some useful tools
  • Add license
  • Get page requirements in Wizard to work

RemoveFromParent() function

The RemoveFromParent function would take UIElement as parameter and remove the specified UI element from its parent control, if possible.

Add optional warning message when clicking on back/continue to wizard

For some pages, it would be great to have a warning when going back or continuing, because the user might lose progress made or something similar. This warning will probably be a yes/no messagebox.

Most likely implementation in class WizardPage:

bool hasBackWarning;
bool hasContinueWarning;
string backWarning;
string continueWarning;

Rework and improve SaveSystem

A working save system is a crucial part of every app that has some sort of settings or other user inputs that need to be stored. Most of my apps save some kind of files as well. Currently, practically every app I have uses a different save system, all of them being pretty outdated and flawed. That's why I've decided to make one universal save system that can be used in all of my apps that are written in C# and WPF.

SeeloewenLib v1.0.0 already comes with a basic implementation of a Save System, though it was mostly meant for test purposes and wasn't ready for actual use yet. As you may know, there haven't been any updates since the first release of the library. That's because since the release, I've been cooking up ideas for features and improvements. Now, it's finally time to add them and the Save System is the first since I think it's most important.

How am I going to implement it?
Pretty much everything is automated. One of the few manual things is the creation of settings entrys. When starting your app, you will need to create a new SaveSystem. To the saveEntries list of that SaveSystem you will have to add a SaveEntry for each entry you want to save. This entry includes the following parameters: string name, string content, bool isCategory, bool hasDefinedValues, string[] possibleValues, int index

When this is done, you can get all settings from your settings file and load the respective values from file into the entries. While doing this, it automatically checks for corruption or invalid values. After finding a corrupted value, you will be asked whether to continue loading it or correct it. When correcting the file, a backup will be created in case you need your old values back.

The entries can be accessed and customized using the provided methods, or simply by accessing the SaveEntries by your own methods.
GetEntry(name) => Returns the value of the given entry
SetEntry(name, value) => Sets entry to given value
ResetEntries() => Resets entries to their default value (1st in possibleValues array or "" if hasDefinedValues is false)

Saving the entries is also very easy. Simply run the Save() method and all of the entries will be written to a settings file. You are free to decide the header and also the filename and path of that settings file.

Add logging system

Most, if not all apps use some sort of log. Whether it be for debugging purposes or actually showing output to the user, it should be easy to understand and nice to look at. Most of my apps already use logging of some sort, but it's not really unified. Also, integrating it into a new app is often a hassle.

That's why a simple logging system will be implemented into SeeloewenLib. You will be able to display the log somewhere in your window by specifying the textbox it should use. You can also create buttons for saving/exporting the log or clearing it. Enabling and disabling the log will also be easy! Finally, to make it appealing, you will be able to choose between 3 logging types: Info, Warning and Error. Each will have its own color.

Make wizard pages accessible by GetPage(int number)

Currently, the pages in the wizard are only accessible by directly accessing the array. This is bad practise and can lead to confusion (Page 2 being 1 in array, etc.).
The GetPage(int Number) would access the array and return the page that corresponds with the number minus 1, meaing GetPage(1) would return wizard.pages[0].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.