| /* | |
| * R : A Computer Language for Statistical Data Analysis | |
| * Copyright (C) 1999 Guido Masarotto | |
| * | |
| * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | |
| * | |
| * This program is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU General Public License | |
| * along with this program; if not, a copy is available at | |
| * https://www.R-project.org/Licenses/ | |
| */ | |
| /* | |
| * int addstatusbar() - add a simple status bar to the mdi frame | |
| * void setstatus(char *text) - set text | |
| */ | |
| /* | |
| This file is an add-on to GraphApp, a cross-platform C graphics library. | |
| */ | |
| #include "internal.h" | |
| static char MDIStatusText[256] = "" ; | |
| #ifndef SBARS_SIZEGRIP | |
| #include "commctrl.h" | |
| #endif | |
| static HWND intMDIStatus=0; | |
| int addstatusbar() | |
| { | |
| int a[1] = {-1}; | |
| if (!MDIFrame) return 0; | |
| if (MDIStatus) return 1; | |
| if(!intMDIStatus) { | |
| InitCommonControls(); | |
| intMDIStatus = CreateStatusWindow(WS_CHILD|SBARS_SIZEGRIP|WS_VISIBLE, | |
| "", hwndFrame, 121); | |
| if (!intMDIStatus) return 0; | |
| SendMessage(intMDIStatus,SB_SETPARTS,(WPARAM)1,(LPARAM)a); | |
| SendMessage(intMDIStatus,SB_SETTEXT, | |
| (WPARAM) 0|0, (LPARAM)MDIStatusText); | |
| } | |
| MDIStatus = intMDIStatus; | |
| SendMessage(hwndFrame,WM_PAINT,(WPARAM) 0,(LPARAM) 0); | |
| return 1; | |
| } | |
| int delstatusbar() | |
| { | |
| if (!MDIFrame) return 0; | |
| MDIStatus = 0; /* handle_mdiframeresize notices this */ | |
| SendMessage(hwndFrame,WM_PAINT,(WPARAM) 0,(LPARAM) 0); | |
| return 1; | |
| } | |
| PROTECTED void updatestatus(const char *text) | |
| { | |
| /* strncpy(MDIStatusText, text, 255); */ | |
| if (!MDIStatus) return; | |
| SendMessage(MDIStatus,SB_SETTEXT, | |
| (WPARAM) 0|0, (LPARAM)MDIStatusText); | |
| SendMessage(MDIStatus, WM_PAINT, (WPARAM)0, (LPARAM)0); | |
| } | |
| void setstatus(const char *text) | |
| { | |
| strncpy(MDIStatusText, text, 255); | |
| if (!MDIStatus || !current_window) return; | |
| strncpy(current_window->status, text, 255); | |
| updatestatus(text); | |
| } |