💾 Archived View for cugi.ie › aminet › 1722229567.gmi captured on 2024-08-25 at 01:00:18. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-08-18)

-=-=-=-=-=-=-

Screen clock with calendar

   Author:       Kim Fastrup Larsen
   Uploader:     kimflarsen hotmail com (Kim Fastrup Larsen)
   Type:         util/time
   Version:      1.5.5
   Architecture: m68k-amigaos >= 2.0
   Date:         2024-07-28
   Readme:       http://aminet.net/util/time/ScreenTime.readme
   Downloads:    3466

http://aminet.net/util/time/ScreenTime.lha

New in version 1.5.5:

---------------------

- Fixed crash on AmigaOS 3.2.x when attempting to render the

calendar.

New in version 1.5.4:

---------------------

- A new, slightly less generic icon. The installer will NOT

update the icon, since this is where your settings are

stored. To get the new icon, you will have to delete the

program in the WBStartup drawer manually before running

the installer. Remember, you will lose your settings!

- Improved keyboard handling.

- Fixed not checking whether atexit succeeds.

- For those interested in the source code, the requester

code has been improved considerably. Requesters can now

have multiple buttons, and the buttons can show shortcut

keys by underlining a character à la GadTools.

- Re-added the DONOTWAIT tool type since it seems to have

got lost at some point.

What is ScreenTime?

-------------------

ScreenTime is a commodity that will display the current time

on the Workbench or any other public screen. By default,

ScreenTime will open a small borderless window on top of the

screen bar, adopting the font and colors of the screen to

make it look like it's part of it, but the position, font or

colors can all be configured using tool types or Shell argu-

ments.

When running on Workbench 2, ScreenTime will use a simple

hh:mm:ss format. On Workbench 2.1 or later, you can choose

between a number of formats defined by your locale that show

different combinations of time and date, or you can create

your own custom format that can also include things like day

of the week and week number.

A calendar for the current month can be brought up by click-

ing on the clock, or using a configurable hot key, and from

here the user can browse through past and future months.

ScreenTime requires Kickstart 2 or later. Full source code

is included.

Installation

------------

To have ScreenTime start automatically whenever you boot

your system, simply run the installer included. This will

install ScreenTime in SYS:WBStartup, or update it there if

it is already installed. Updating in this manner will not

replace the icon, so you will not lose your current configu-

ration.

The installer will also install language files for existing

languages. ScreenTime currently supports Danish, English,

German, Greek, Italian and Turkish.

Operation

---------

Clicking the clock will bring up a calendar for the current

month. You can also define a global hot key for bringing up

the calendar (more on this below). A pair of buttons allow

you to browse through other months. Alternatively, you can

use the left and right arrow keys on your keyboard for the

same purpose. Click the clock again or press Esc (or the

global hot key) to dismiss the calendar.

You can run multiple instances of ScreenTime at the same

time if you want the time displayed on several screens at

once, but only one for each screen. Each instance will be

given a different commodity name that includes the screen

name so that they can be told apart in Commodities Exchange.

To remove an instance of ScreenTime, run it again (using the

same screen specification) or use Commodities Exchange. You

can also quit from the menu when the calendar is open.

Note that if you change your system time, it can happen that

the clock stops updating due to the manner in which it waits

for the system time to change. The program is still running

just fine, but it might be waiting for a moment in time that

is now far in the future. If this happens, you will need to

restart the program or use Commodities Exchange to de- and

reactivate it.

Configuration

-------------

If you start ScreenTime from the Workbench or by placing it

in WBStartup, you configure it through tool types. If you

start it from a Shell or the User-Startup, you use command

line arguments.

On Workbench 2.1 and later you can specify the desired for-

mat using the FORMAT tool type or argument. There are six

different locale-defined formats to choose from:

TIME

DATE

DATETIME

SHORTTIME

SHORTDATE

SHORTDATETIME

What you get in each case depends on your locale. Some of

them may give the same result in some locales. By default,

ScreenTime will use the TIME format, equivalent to using

FORMAT=TIME

You can also create your own custom format. For example,

FORMAT=%a %q:%M

will show the abbreviated week day, followed by a space,

followed by the hour (in 24-hour format), followed by a

colon, followed by the minutes.

You can include any characters in the string, but every ap-

pearance of a % character followed by a single letter is

taken as a command to insert a particular element of the

current time into the string at that position - to display

an actual % character, use %%.

The commands available are defined by the locale. They are:

%a - abbreviated weekday name

%A - weekday name

%b - abbreviated month name

%B - month name

%c - same as "%a %b %d %H:%M:%S %Y"

%d - day number with leading 0s

%D - same as "%m/%d/%y"

%e - day number with leading spaces

%h - abbreviated month name

%H - hour using 24-hour style with leading 0s

%I - hour using 12-hour style with leading 0s

%j - julian date

%m - month number with leading 0s

%M - the number of minutes with leading 0s

%p - AM or PM strings

%q - hour using 24-hour style

%Q - hour using 12-hour style

%r - same as "%I:%M:%S %p"

%R - same as "%H:%M"

%S - number of seconds with leadings 0s

%T - same as "%H:%M:%S"

%U - week number, taking Sunday as first day of week

%w - weekday number

%W - week number, taking Monday as first day of week

%x - same as "%m/%d/%y"

%X - same as "%H:%M:%S"

%y - year using two digits with leading 0s

%Y - year using four digits with leading 0s

You specify which public screen you want the time displayed

on by using the PUBSCREEN tool type or Shell argument.

Use MARGIN_TOP and MARGIN_RIGHT to specify the position of

ScreenMenu's window. The default values are 1 and 30, re-

spectively.

Use FONT_NAME and FONT_SIZE to specify the font. The font

name must include the .font suffix, as in

FONT_NAME=topaz.font

FONT_SIZE=8

If no font is specified, ScreenMenu will use the screen

font. Likewise, if no size is specified, the size of the

screen font will be adopted.

You can specify the colors to be used with TEXT_COLOR and

BACKGROUND_COLOR. If left unspecified, ScreenTime will adopt

the colors of the screen bar.

If the value of a color is a simple number, it indicates a

pen number, for example:

TEXT_COLOR=1

The pens are defined by the screen on which the clock is

displayed. For the Workbench screen, you can use the Palette

system preferences tool to define pens.

On Kickstart 3 and later, you can specify colors using RGB

values. These are specified with a # followed by a hexadeci-

mal number, which can be either 3 or 6 digits. For example,

TEXT_COLOR=#f50

This sets red to f, green to 5 and blue to 0.

For full 24-bit precision on AGA systems, you can use 6 dig-

its, using a pair of digits for each of red, green and blue.

For example,

TEXT_COLOR=#fa520a

This sets red to fa, green to 52 and blue to 0a.

For RGB values, ScreenTime will attempt to obtain a shared

pen from the screen on which it is displayed. How successful

this will be depends on how many pens the screen is sharing

and how many of those are already in use by other programs.

In any case, you will get the closest possible color to your

specification, or the default pen if it was not possible to

get a shared pen.

You can specify the position of the calendar using

CALENDAR_X and CALENDAR_Y. If you specify a position that is

outside the bounds of the screen, it will be adjusted to

place the calendar along the edge. By default, the calendar

will be positioned just below the screen bar at the right

edge of the screen.

You can define a global hot key for bringing up the calendar

using CALENDAR_POPKEY. By default, no hot key is defined.

You can specify the font to be used for the calendar with

CALENDAR_FONT_NAME and CALENDAR_FONT_SIZE. The default is

to use the screen font.

The colors used for rendering the calendar can be specified

with CALENDAR_TEXT_COLOR and CALENDAR_BACKGROUND_COLOR. If

left unspecified, the standard text and background pens from

the system preferences are used.

Using TODAY_COLOR, you can specify an alternative color with

which to highlight the current date. Furthermore, you can

choose a rendering style with a combination of the following

tool types or Shell arguments:

TODAY_INVERSED

TODAY_BOLD

TODAY_ITALIC

TODAY_UNDERLINED

These take a YES/NO value, for example:

TODAY_BOLD=YES

The default behavior is to render the current date in in-

verse using the same color as the rest of the calendar. If

you do not wish to use inverse rendering, you must therefore

disable it, like this:

TODAY_INVERSED=NO

There are abbreviations available for some of the command

line arguments when using a Shell or the User-Startup. They

are as follows:

TOP for MARGIN_TOP

RT for MARGIN_RIGHT

FNAM for FONT_NAME

FSIZ for FONT_SIZE

COL for TEXT_COLOR

BG for BACKGROUND_COLOR

CALX for CALENDAR_X

CALY for CALENDAR_Y

CALKEY for CALENDAR_POPKEY

CALFNAM for CALENDAR_FONT_NAME

CALFSIZ for CALENDAR_FONT_SIZE

CALCOL for CALENDAR_TEXT_COLOR

CALBG for CALENDAR_BACKGROUND_COLOR

TODCOL for TODAY_COLOR

TODINV for TODAY_INVERSED

TODBOL for TODAY_BOLD

TODITA for TODAY_ITALIC

TODUND for TODAY_UNDERLINED

Miscellaneous

-------------

Thank you to Stefan Haubenthal for the German translation,

to Samir Hawamdeh for the Italian translation, to Anthony

Iliakis for the Greek translation, to Serkan Dursun for the

Turkish translation, and to the various people who gave sug-

gestions and feedback that helped me improve ScreenTime!

I have released several projects on Aminet. Almost all of

them include source code, but the newer ones are probably

the most useful, so allow me to highlight them here.

ToolsMenu - Add tools and projects to the Workbench Tools

menu with a simple graphical user interface:

https://aminet.net/package/util/cdity/ToolsMenu

Labyrinth - Remake of a Commodore 64 game:

https://aminet.net/package/game/misc/labyrinth64

Base Converter - Convert between bin/oct/dec/hex with a

simple GUI:

https://aminet.net/package/util/wb/BaseConv

You can get a list of all my projects with this link:

https://aminet.net/search?readme=kimflarsen

History:

--------

1.5.5 (Jul 28, 2024)

- Fixed crash on AmigaOS 3.2.x when attempting to render the

calendar.

1.5.4 (Jul 21, 2024)

- A new, slightly less generic icon. The installer will NOT

update the icon, since this is where your settings are

stored. To get the new icon, you will have to delete the

program in the WBStartup drawer manually before running

the installer. Remember, you will lose your settings!

- Improved keyboard handling.

- Fixed not checking whether atexit succeeds.

- For those interested in the source code, the requester

code has been improved considerably. Requesters can now

have multiple buttons, and the buttons can show shortcut

keys by underlining a character à la GadTools.

- Re-added the DONOTWAIT tool type since it seems to have

got lost at some point.

1.5.3 (Feb 24, 2023)

- Now includes Turkish translation by Serkan Dursun.

- If the format does not include seconds, ScreenTime will

now only refresh when the current minute changes in order

to minimize CPU and blitter usage.

1.5.2 (Feb 3, 2023)

- Now includes Greek translation courtesy of Anthony

Iliakis.

- Minor optimizations.

1.5.1 (Dec 2, 2022)

- Calendar code no longer relies on the Standard C Library

time functions, but uses the utility.library and handwrit-

ten code instead, thereby avoiding problems with broken

implementations of mktime, as well as hopefully ensuring

that the program will keep working for the rest of this

century.

1.5 (Nov 18, 2022)

- Added options to control the calendar font and colors, as

well as the rendering style of the current date.

- Colors can now be specified using RGB values on Kickstart

3 and later.

- Fixed: Some memory related to the calendar hot key did not

get released on program exit.

1.4.1 (Mar 19, 2022)

- Fixed an Enforcer hit if the user activated the calendar

with the global hot key while the clock window was closed

in response to the Workbench screen being closed.

1.4 (Jan 6, 2022)

- If screennotify.library is available, a clock on the Work-

bench screen will now automatically close and reopen when

the Workbench needs to close and reopen its screen.

- The user can now define a global hot key for bringing up

the calendar.

- The calendar window now sports a menu.

- Now comes with an install script.

1.3 (Feb 1, 2021)

- The placement of the calendar can now be specified with

tool types or Shell arguments.

- The calendar can now be dismissed by pressing the Esc key.

- Added abbreviations for several of the Shell arguments.

- Added the DONOTWAIT tool type to the program icon.

1.2.2 (Mar 31, 2020):

- Fixed a bug in the calendar where, if you were on the last

day of the month, the next and previous month would be

incorrectly rendered.

1.2.1 (Jan 24, 2020):

- Tried to make the calendar layout routines more compatible

with certain patches or versions of the AmigaOS that mess

with window title bars and cause problems when precalcu-

lating the size of windows that do not have titles.

- Removed the spacing added in 1.2 since it might not be de-

sirable when using alternative colors, and since it can be

added manually using the format string anyway.

- Now includes Italian translation by Samir Hawamdeh.

1.2 (Jan 16, 2020)

- Clicking the clock now pops up a calendar for the current

month. Months can be browsed using buttons or the arrow

keys. Click the clock again to close the calendar.

- Added a bit of spacing at the left edge of the clock to

cover very long screen titles.

- Now includes German translation by Stefan Haubenthal.

1.1 (Dec 17, 2019)

- Added options to specify position, font and colors.

1.0 (Dec 8, 2019)

- Initial release.

Contents of util/time/ScreenTime.lha

PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]                  252     628  40.1% -lh5- 2c51 Feb  3 14:46 ScreenTime.info
[unknown]                  218     302  72.2% -lh5- 46e0 Feb  3 14:46 ScreenTime/Catalogs/dansk/screentime.catalog
[unknown]                  234     324  72.2% -lh5- 44e1 Feb  3 14:46 ScreenTime/Catalogs/deutsch/screentime.catalog
[unknown]                  250     316  79.1% -lh5- 53a3 Feb  3 14:46 ScreenTime/Catalogs/greek/screentime.catalog
[unknown]                  291     408  71.3% -lh5- dbd6 Feb  3 14:46 ScreenTime/Catalogs/italiano/screentime.catalog
[unknown]                12641   35147  36.0% -lh5- 7994 Feb  3 14:46 ScreenTime/gpl-3.0.txt
[unknown]                  249     477  52.2% -lh5- 4273 Feb  3 14:46 ScreenTime/gpl-3.0.txt.info
[unknown]                  290     891  32.5% -lh5- 727a Feb  3 14:47 ScreenTime/Install
[unknown]                  201     836  24.0% -lh5- 5921 Feb  3 14:47 ScreenTime/Install.info
[unknown]                 5246   12949  40.5% -lh5- 7517 Feb  3 14:46 ScreenTime/ReadMe
[unknown]                  246     477  51.6% -lh5- 7f30 Feb  3 14:46 ScreenTime/ReadMe.info
[unknown]                 8461   13388  63.2% -lh5- ebd3 Feb  3 14:46 ScreenTime/ScreenTime
[unknown]                  498    1184  42.1% -lh5- 03eb Feb  3 14:46 ScreenTime/ScreenTime.info
[unknown]                 1592    1592 100.0% -lh0- 9662 Feb  3 14:47 ScreenTime/ScreenTime_ITA.lha
[unknown]                 2551    9213  27.7% -lh5- b633 Feb  3 14:47 ScreenTime/Source/args.c
[unknown]                  764    1439  53.1% -lh5- f95a Feb  3 14:47 ScreenTime/Source/args.h
[unknown]                 1495    3541  42.2% -lh5- 51e9 Feb  3 14:47 ScreenTime/Source/broker.c
[unknown]                  560     949  59.0% -lh5- 444f Feb  3 14:47 ScreenTime/Source/broker.h
[unknown]                  848    1589  53.4% -lh5- ec27 Feb  3 14:47 ScreenTime/Source/catalog.c
[unknown]                  564     923  61.1% -lh5- 1298 Feb  3 14:46 ScreenTime/Source/catalog.h
[unknown]                  643    1078  59.6% -lh5- 14ad Feb  3 14:46 ScreenTime/Source/common.c
[unknown]                  620    1028  60.3% -lh5- 524a Feb  3 14:46 ScreenTime/Source/common.h
[unknown]                  554     909  60.9% -lh5- b00b Feb  3 14:46 ScreenTime/Source/compiler.h
[unknown]                  817    1720  47.5% -lh5- 0b64 Feb  3 14:46 ScreenTime/Source/cx.c
[unknown]                  542     957  56.6% -lh5- b4cc Feb  3 14:46 ScreenTime/Source/cx.h
[unknown]                  324     464  69.8% -lh5- 01e3 Feb  3 14:47 ScreenTime/Source/dansk.ct
[unknown]                 1919    4854  39.5% -lh5- f1a9 Feb  3 14:46 ScreenTime/Source/datetime.c
[unknown]                  860    1667  51.6% -lh5- 8003 Feb  3 14:46 ScreenTime/Source/datetime.h
[unknown]                  340     480  70.8% -lh5- 154c Feb  3 14:47 ScreenTime/Source/deutsch.ct
[unknown]                  999    2106  47.4% -lh5- 6e60 Feb  3 14:46 ScreenTime/Source/error.c
[unknown]                  708    1236  57.3% -lh5- 5129 Feb  3 14:46 ScreenTime/Source/error.h
[unknown]                 5817   18601  31.3% -lh5- 7a6d Feb  3 14:46 ScreenTime/Source/gui.c
[unknown]                  652    1142  57.1% -lh5- 7d47 Feb  3 14:46 ScreenTime/Source/gui.h
[unknown]                 2565    7578  33.8% -lh5- 9a20 Feb  3 14:46 ScreenTime/Source/guitools.c
[unknown]                  728    1323  55.0% -lh5- ad45 Feb  3 14:46 ScreenTime/Source/guitools.h
[unknown]                 1471    3871  38.0% -lh5- c1ed Feb  3 14:46 ScreenTime/Source/main.c
[unknown]                   68      68 100.0% -lh0- 7567 Feb  3 14:47 ScreenTime/Source/MakeDirIfNotExists
[unknown]                  250     316  79.1% -lh5- 53a3 Feb  3 14:47 ScreenTime/Source/Resources/Catalogs/greek/screentime.catalog
[unknown]                  291     408  71.3% -lh5- dbd6 Feb  3 14:47 ScreenTime/Source/Resources/Catalogs/italiano/ScreenTime.catalog
[unknown]                  498    1184  42.1% -lh5- 03eb Feb  3 14:47 ScreenTime/Source/Resources/ScreenTime.info
[unknown]                  113     155  72.9% -lh5- 9431 Feb  3 14:47 ScreenTime/Source/SCOPTIONS
[unknown]                  643    1088  59.1% -lh5- 6ea3 Feb  3 14:47 ScreenTime/Source/screentime.cd
[unknown]                  806    2286  35.3% -lh5- 1680 Feb  3 14:47 ScreenTime/Source/smakefile
[unknown]                  932    1882  49.5% -lh5- 164e Feb  3 14:46 ScreenTime/Source/snotify.c
[unknown]                  549     895  61.3% -lh5- 29cd Feb  3 14:46 ScreenTime/Source/snotify.h
[unknown]                  886    1673  53.0% -lh5- aa21 Feb  3 14:46 ScreenTime/Source/snprintf.c
[unknown]                  840    1480  56.8% -lh5- f416 Feb  3 14:46 ScreenTime/Source/snprintf.h
[unknown]                 1219    2753  44.3% -lh5- b215 Feb  3 14:46 ScreenTime/Source/timer.c
[unknown]                  587    1014  57.9% -lh5- 0208 Feb  3 14:46 ScreenTime/Source/timer.h
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        49 files   64692  150789  42.9%            Feb  4 04:40

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminet aminet net>