This commit is contained in:
Nishi 2025-11-22 17:57:17 +09:00
commit 1c4e999ebe
Signed by: nishi
GPG key ID: 27EF69B208EB9343
7 changed files with 65 additions and 32 deletions

View file

@ -1,33 +1,33 @@
#include "mbiff.h"
static time_t last = 0;
static char* mailpath;
static char* mailpath;
void init_mail(void){
struct stat s;
void init_mail(void) {
struct stat s;
struct passwd* pwd = getpwuid(getuid());
if(getenv("MAIL") != NULL){
if(getenv("MAIL") != NULL) {
mailpath = malloc(strlen(getenv("MAIL")) + strlen(pwd->pw_name) + 1);
sprintf(mailpath, getenv("MAIL"), pwd->pw_name);
}else{
} else {
mailpath = malloc(strlen(_PATH_MAILDIR) + 1 + strlen(pwd->pw_name) + 1);
sprintf(mailpath, _PATH_MAILDIR "/%s", pwd->pw_name);
}
if(stat(mailpath, &s) == 0){
if(stat(mailpath, &s) == 0) {
last = s.st_mtime;
}
}
void check_mail(void){
void check_mail(void) {
struct stat s;
s.st_mtime = 0;
if(stat(mailpath, &s) == 0 || last != 0){
if((s.st_mtime == 0 && last != 0) || s.st_mtime > last){
if(stat(mailpath, &s) == 0 || last != 0) {
if((s.st_mtime == 0 && last != 0) || s.st_mtime > last) {
MwVaApply(image,
MwNpixmap, full,
NULL);
MwNpixmap, full,
NULL);
}
last = s.st_mtime;

View file

@ -3,47 +3,47 @@
#include "mailempty.xpm"
#include "mailfull.xpm"
MwWidget window, image, mail;
MwWidget window, image, mail;
MwLLPixmap empty, full;
static int waiting = 0;
static void resize(MwWidget handle, void* user, void* client){
int w = MwGetInteger(handle, MwNwidth);
int h = MwGetInteger(handle, MwNheight);
static void resize(MwWidget handle, void* user, void* client) {
int w = MwGetInteger(handle, MwNwidth);
int h = MwGetInteger(handle, MwNheight);
int iw = w < h ? w : h;
(void)user;
(void)client;
MwVaApply(image,
MwNx, (w - iw) / 2,
MwNy, (h - iw) / 2,
MwNwidth, iw,
MwNheight, iw,
NULL);
MwNx, (w - iw) / 2,
MwNy, (h - iw) / 2,
MwNwidth, iw,
MwNheight, iw,
NULL);
}
static void tick(MwWidget handle, void* user, void* client){
static void tick(MwWidget handle, void* user, void* client) {
(void)handle;
(void)user;
(void)client;
waiting += MwWaitMS;
if(waiting >= 1000){
if(waiting >= 1000) {
check_mail();
waiting = 0;
}
}
static void mouseUp(MwWidget handle, void* user, void* client){
static void mouseUp(MwWidget handle, void* user, void* client) {
(void)handle;
(void)user;
(void)client;
MwVaApply(image,
MwNpixmap, empty,
NULL);
MwNpixmap, empty,
NULL);
}
int main() {
@ -52,12 +52,12 @@ int main() {
MwLibraryInit();
window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 128, 128,
MwNtitle, "mbiff",
NULL);
MwNtitle, "mbiff",
NULL);
empty = MwLoadImage(window, DATADIR "/mde/icons/128x128/mailempty.png");
full = MwLoadImage(window, DATADIR "/mde/icons/128x128/mailfull.png");
mail = MwLoadImage(window, DATADIR "/mde/icons/128x128/mail.png");
full = MwLoadImage(window, DATADIR "/mde/icons/128x128/mailfull.png");
mail = MwLoadImage(window, DATADIR "/mde/icons/128x128/mail.png");
if(empty == NULL) empty = MwLoadXPM(window, mailempty);
if(full == NULL) full = MwLoadXPM(window, mailfull);
if(mail == NULL) mail = MwLoadXPM(window, mailempty);
@ -65,8 +65,8 @@ int main() {
MwVaApply(window, MwNiconPixmap, mail, NULL);
image = MwVaCreateWidget(MwImageClass, "image", window, 0, 0, 128, 128,
MwNpixmap, empty,
NULL);
MwNpixmap, empty,
NULL);
MwAddUserHandler(image, MwNmouseUpHandler, mouseUp, NULL);
MwAddUserHandler(window, MwNtickHandler, tick, NULL);

View file

@ -25,7 +25,7 @@
#endif
/* main.c */
extern MwWidget window, image;
extern MwWidget window, image;
extern MwLLPixmap empty, full;
/* mail.c */