001package org.vishia.gral.ifc; 002 003import java.io.File; 004 005import org.vishia.gral.base.GralWidget; 006import org.vishia.gral.base.GralWindow_setifc; 007import org.vishia.mainCmd.MainCmd_ifc; 008 009 010/**This interface represents a basic main window with title bar in the gral (graphical adaption layer). 011 * 012 * @author Hartmut Schorrig 013 * 014 */ 015public interface GralPrimaryWindow_ifc //extends GralWindow_setifc, GralWindow_getifc //, GralWindowMng_ifc 016{ 017 /**Version, history and license. 018 * <ul> 019 * <li>2012-03-10 Hartmut chg Now the both GralWindow_set- and -getifc are base, 020 * The GralWindow_ifc is independent of this. 021 * <li>2011-06-00 Hartmut created 022 * </ul> 023 * 024 * <b>Copyright/Copyleft</b>:<br> 025 * For this source the LGPL Lesser General Public License, 026 * published by the Free Software Foundation is valid. 027 * It means: 028 * <ol> 029 * <li> You can use this source without any restriction for any desired purpose. 030 * <li> You can redistribute copies of this source to everybody. 031 * <li> Every user of this source, also the user of redistribute copies 032 * with or without payment, must accept this license for further using. 033 * <li> But the LPGL is not appropriate for a whole software product, 034 * if this source is only a part of them. It means, the user 035 * must publish this part of source, 036 * but doesn't need to publish the whole source of the own product. 037 * <li> You can study and modify (improve) this source 038 * for own using or for redistribution, but you have to license the 039 * modified sources likewise under this LGPL Lesser General Public License. 040 * You mustn't delete this Copyright/Copyleft inscription in this source file. 041 * </ol> 042 * If you intent to use this source without publishing its usage, you can get 043 * a second license subscribing a special contract with the author. 044 * 045 * @author Hartmut Schorrig = hartmut.schorrig@vishia.de 046 */ 047 public static final int version = 20120303; 048 049 /**Sets the title and the pixel size for the whole window. */ 050 //void buildMainWindow(String sTitle, int left, int top, int xSize, int ySize); 051 052 053 /**Activates the menu bar with the standard entries, especially the file open entry. 054 * Note: This method should only be called in the same thread where the graphic runs. 055 * 056 * @param openStandardDirectory If given, then this is the default directory for file open. 057 * @param actionFile Action on file menu entries. 058 */ 059 void setStandardMenusGThread(File openStandardDirectory, GralUserAction actionFile); 060 061 062 063 MainCmd_ifc getMainCmd(); 064 065 066 /**Returns the Frame class of the underlying graphic. 067 * SWT: Shell, swing: TODO 068 * @return 069 */ 070 Object getitsGraphicFrame(); 071 072 073 074 075 076}