★ wanayoo — archive 1999 http://linux.opennet.ru/base/patch/mc_clock.txt.htmlNouvelle recherche | Portail wanayoo
   SOFT- Обзоры лучших программ
   LINKS- Ссылки на unix ресурсы
   TOPIC- Тематические статьи
   NEWS- Раздел новостей
   MAP- Карта сервера (схема)
путеводитель | RTFM | конференция | отзыв | lastsoft | ЦУП
The OpenNET Project / Index page
FreeBSD, Linux, OpenBSD, NetBSD, not free
Поиск

Midnight Commander и часики (для вас любители этих тикающих гадов)
<< Предыдущая Список статей Поиск заголовков Оригинал Установить закладку Перейти на закладку Следующая >>

_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
 From : (GalaxyMaster)                      2:5020/149      19 Aug 99  14:13:20
 Subj : Midnight Commander и часики (для вас любители этих тикающих гадов)
________________________________________________________________________________
                              Hi, Dear (╢ll!
                              ~~~~~~~~~~~~~~

=)) Помню, говорили тут о нехватке часиков в верхнем правом углу. Вчера случайно
вспомнил об этом, залез в исходники, подпачил, сутки гонял -
вроде все пучком... Проверил и slang & curses - и там и там - нормально.

Короче, ниже следует патчик для MC 4.5.37 (незнаю свежий он или нет, другого
у меня нет), коий добаляет пассивные часы в верхний угол экрана (интересно,
а кому могут понадобится активные??? =)). Эти часики обнавляются при нажатии
на любую клавишу и видны только в том случае, если меню всегда видно (иначе
их некуда пихать =)).

Сильно ногами не пинайте, я первый раз патч для общественности делал, а вот
разумные предложения по улучшению моего стиля программирования всегда
пожалуйста... Я только-только начинаю въезжать, как писать под линукс... =)


_-_->8 Cut Here 8<-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

diff -uNr mc-4.5.37.orig/src/key.c mc-4.5.37/src/key.c
_-_ mc-4.5.37.orig/src/key.c Tue Jul 13 07:57:28 1999
+++ mc-4.5.37/src/key.c Thu Aug 19 12:11:07 1999
@@ -38,6 +38,7 @@
 #include <errno.h>
 #include "global.h"
 #include "mouse.h"
+#include "menu.h" /* Used for update_clock() in get_key_code() */
 #include "key.h"
 #include "main.h"
 #include "win.h"
@@ -461,6 +462,8 @@
     static struct timeval esctime = { -1, -1 };
     static int lastnodelay = -1;

+    update_clock();
+
     if (no_delay != lastnodelay) {
         this = NULL;
         lastnodelay = no_delay;
diff -uNr mc-4.5.37.orig/src/menu.c mc-4.5.37/src/menu.c
_-_ mc-4.5.37.orig/src/menu.c Tue Jul 13 07:57:28 1999
+++ mc-4.5.37/src/menu.c Thu Aug 19 12:03:28 1999
@@ -162,6 +162,8 @@
     for (i =  menubar->widget.cols; i; i--)
  addch (' ');

+    update_clock();
+
     attrset (SELECTED_COLOR);
     /* Now each one of the entries */
     for (i = 0; i < items; i++){
@@ -543,3 +545,39 @@

     return menubar;
 }
+
+/*
+  Small'n'Dirty Clock for MC
+  _-__-__-__-__-__-__-__-_--
+  This hack provides a small passive clock in the upper right corner of screen
+  Clock is visible only  if menubar visible.  This clock is not a realtime, so
+  it will be updated as soon as  one of several events occurs.  I do not think
+  that realtime clock needed, because unnecessary time check and screen output
+  must be performed, but if you will - call update_clock() within every second
+  or you can mail me (if you really need realtime clock in MC).
+
+                                                         (GalaxyMaster) // D$C
+                                                    <galaxy@unforgettable.com>
+*/
+void update_clock (void)
+{
+  int x,y;
+  if (menubar_visible){                     /* Menubar visibility check     */
+    char timestr[6];                        /* Used for storing time string */
+    time_t current_time=time(NULL);         /* Let's get current time...    */
+    if (current_time > 0){                  /* Check for correct time value */
+      if (!(strftime(timestr, 6, "%R", localtime(&current_time))))
+        strcpy(timestr,"??:??");
+#ifdef HAVE_SLANG
+      x = SLsmg_get_column();               /* Saving cursor coordinate (x) */
+      y = SLsmg_get_row();                  /* Saving cursor coordinate (y) */
+#else
+      getyx(stdscr,y,x);                    /* Saving cursor coords (x,y)   */
+#endif
+      move(0, COLS-6);                      /* Moving cursor to upper right */
+      attrset(SELECTED_COLOR);              /* Setting color attr. of clock */
+      addstr(timestr); addch(' ');          /* Here comes... =)             */
+      move(y,x);                            /* Restoring cursor coordinates */
+    }
+  }
+};
diff -uNr mc-4.5.37.orig/src/menu.h mc-4.5.37/src/menu.h
_-_ mc-4.5.37.orig/src/menu.h Tue Jul 13 07:57:28 1999
+++ mc-4.5.37/src/menu.h Thu Aug 19 12:01:38 1999
@@ -60,5 +60,6 @@
 void   menubar_arrange (WMenu* menubar);
 int    menubar_event   (Gpm_Event *event, WMenu *menubar);

+void   update_clock(void); /* Draws clock in upper right corner of MC */
 #endif /* __MENU_H */

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-->8 Cut Here 8<_-_
Note: над всеми '+++' находятся _три минуса_, поправьте перед патчиньем....


                                                    (GalaxyMaster) // D$C
****
 E-Mail: galaxy@unforgettable.com
 WWW   : http://www.geocities.com/SiliconValley/Way/6520/
****

... Я не люблю когда мне врут, но от правды я тоже устал...
--- Visual Assembler v3.22/Release For 0S/2 By D$C
 * Origin: ч╡щSpace Secret Garden Of Loveч╡щ716-1256ч╡щAddress: (2:5020/149)


<< Предыдущая Список статей Поиск заголовков Оригинал Установить закладку Перейти на закладку Следующая >>
Замечания, дополнения, мнения, коментарии

OpenNET Новости Ссылки Программы Статьи   Закладки (Отметить)  
Created by Maxim Chirkov