It is currently April 30th, 2024, 4:06 pm

Dynamic desktop to-do board

Get help with creating, editing & fixing problems with skins
othman
Posts: 5
Joined: November 21st, 2019, 5:41 pm

Dynamic desktop to-do board

Post by othman »

Hello,

I am new to Rainmeter. I've come across it while trying to build a desktop widget to help me keep track of my tasks using Eisenhower's Urgent/Important system. The final product would look something like the image:
eg.png
Rainmeter's welcome skin looks amazing and ideally I'd like my widget to be aesthetically similar and adaptive in size (keeps the aspect ratio of the box while fitting each task to one line and showing all tasks or allowing scrolling).

To avoid re-inventing the wheel. Is there something similar to this out there? If not and I have to build it from scratch, I would really appreciate some pointer/tips.

Cheers,
Othman
You do not have the required permissions to view the files attached to this post.
othman
Posts: 5
Joined: November 21st, 2019, 5:41 pm

Re: Dynamic desktop to-do board

Post by othman »

Here's my first attempt:
eg1.png
I haven't been able to create text boxes to directly enter/delete text. If anyone has any idea on how to do this, I'd be very grateful. I currently have to edit the .ini file to change the tasks.

To sync across computers automatically, I've installed Rainmeter as a portable exe in a cloud folder.

Files attached. You need to place bac.png in the same directory as the .ini file.
You do not have the required permissions to view the files attached to this post.
User avatar
Yamajac
Posts: 134
Joined: June 30th, 2014, 8:44 am

Re: Dynamic desktop to-do board

Post by Yamajac »

This isn't really exactly the same, but in my RainManager skin I add "entries" to a window and it supports both scrolling and getting the entry clicked as you can see in the video.


The way I do this is by separating each entry with #CRLF#(builtin newline) so when the text meter displays it each entry is put onto a new line.


Then when I click on the measure, I divide $MouseY$ by a #Spacing# variable which is the number of pixels I've found to be equal to the height of each line with this font+font size - use a bunch of shapes in a shape meter with #Spacing# height and keep changing the variable till it lines up with the lines. Then I take that variable and get the entry that was clicked on with some relatively simple regex and do whatever I want to do to it.


For the scrolling, I define a #StartY# which is the Y coordinate the string meter starts at by default. Then when I scroll up/down I just add/remove #Spacing# to the meter's Y value. A bit of math is used to make sure the meter has a max/min scrolling value which is done by calculating the difference between the meter's bottommost point and #StartY#. When scrolling the other way we just make sure the meter's Y value is never more than #StartY#. Stick the meter in a container of the size you want the draw area to be and all the bits outside the container don't get drawn, making a neat little scrolling effect.


As for the bits that you'd have to do differently;

You'd want to use an InputText plugin to add new entries - just set the variable that's being displayed to #Variable##CRLF#$UserInput$ to append a new line + the entry. For being able to have sub-entries, or insert entries at diferent points you're getting into quite a bit more complicated stuff.

To remove entries you'd wanna get the entry clicked on in a similar fashion and then use some regex to grab everything but the nth entry and replace it with everything before the nth entry and everything after.


Then you replicate it 4 times for each quadrant, maybe adding in some fancy stuff like being able to move entries from one quadrant to another and bippity boppity there's your skin.


You could also use lua, but I don't.
othman
Posts: 5
Joined: November 21st, 2019, 5:41 pm

Re: Dynamic desktop to-do board

Post by othman »

Thanks a lot for your help, Yamajac! I've abandoned the scrolling idea to simplify the interface and de-clutter. I now have a working version of this here: https://github.com/othmanalbahri1/prioritymatrix

The skin is simply an interface for 4 txt files that contain the text and which can be edited by clicking on the words 'Do now', 'Schedule' .. etc.
User avatar
eclectic-tech
Rainmeter Sage
Posts: 5407
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA

Re: Dynamic desktop to-do board

Post by eclectic-tech »

othman wrote: December 11th, 2019, 8:00 pm Thanks a lot for your help, Yamajac! I've abandoned the scrolling idea to simplify the interface and de-clutter. I now have a working version of this here: https://github.com/othmanalbahri1/prioritymatrix

The skin is simply an interface for 4 txt files that contain the text and which can be edited by clicking on the words 'Do now', 'Schedule' .. etc.
Several years ago, hijacked, virus-infected Rainmeter skins were a major problem. :x

To eliminate this problem the developers of Rainmeter starting using a modified compression process to allow creator to package their skins and distribute them with confidence that they would not be altered from the original creation. It is the RMSKIN type.

Using the built-in process to create a Rainmeter skin package ensures your end user will receive an unaltered version of your creation. 8-)

It is true that webmasters have improved their ability to eliminate potential threats prior to posting downloadable material, but still I would highly recommend that you change your GitHub download from a ZIP set of files to a ZIP containing a RMSKIN skin package to prevent tampering and ensure your end users that the download is pristine, unaltered, and uninfected. :thumbup:

Nice work on your quadrant skin! :great:
othman
Posts: 5
Joined: November 21st, 2019, 5:41 pm

Re: Dynamic desktop to-do board

Post by othman »

Thanks for bringing this up, it’s a very important issue! I’ll edit the Github repository later today :)