From c6b9b107e8122eefa443395082c624a75d8acc15 Mon Sep 17 00:00:00 2001 From: Devin Smith Date: Fri, 23 Apr 2021 15:37:01 -0700 Subject: [PATCH] Update to Fox 1.7.77 --- CMakeLists.txt | 1 + LICENSE | 659 ++++---------- LICENSE_ADDENDUM | 2 +- controlpanel/CMakeLists.txt | 26 + controlpanel/ControlPanel.1 | 28 + controlpanel/ControlPanel.cpp | 1344 +++++++++++++++++++++++++++++ controlpanel/ControlPanel.h | 247 ++++++ controlpanel/LICENSE | 674 +++++++++++++++ controlpanel/colors_gif.gif | Bin 0 -> 777 bytes controlpanel/controlpanel_gif.gif | Bin 0 -> 2554 bytes controlpanel/filebinding_gif.gif | Bin 0 -> 326 bytes controlpanel/settings_gif.gif | Bin 0 -> 1345 bytes include/FX4Splitter.h | 2 +- include/FX7Segment.h | 2 +- include/FXAccelTable.h | 2 +- include/FXApp.h | 2 +- include/FXArray.h | 2 +- include/FXArrowButton.h | 2 +- include/FXAtomic.h | 2 +- include/FXAutoPtr.h | 2 +- include/FXAutoThreadStorageKey.h | 2 +- include/FXBMPIcon.h | 2 +- include/FXBMPImage.h | 2 +- include/FXBZFileStream.h | 5 +- include/FXBarrier.h | 2 +- include/FXBitmap.h | 2 +- include/FXBitmapFrame.h | 2 +- include/FXBitmapView.h | 2 +- include/FXButton.h | 2 +- include/FXCURCursor.h | 2 +- include/FXCalendar.h | 2 +- include/FXCalendarView.h | 2 +- include/FXCallback.h | 2 +- include/FXCanvas.h | 2 +- include/FXCheckButton.h | 2 +- include/FXChoiceBox.h | 2 +- include/FXColorBar.h | 2 +- include/FXColorDialog.h | 2 +- include/FXColorList.h | 2 +- include/FXColorRing.h | 2 +- include/FXColorSelector.h | 2 +- include/FXColorWell.h | 2 +- include/FXColorWheel.h | 2 +- include/FXColors.h | 2 +- include/FXComboBox.h | 2 +- include/FXCompletion.h | 2 +- include/FXComplexd.h | 2 +- include/FXComplexf.h | 2 +- include/FXComposeContext.h | 2 +- include/FXComposite.h | 2 +- include/FXCondition.h | 2 +- include/FXConsole.h | 2 +- include/FXCursor.h | 2 +- include/FXDC.h | 2 +- include/FXDCPrint.h | 2 +- include/FXDCWindow.h | 2 +- include/FXDDSIcon.h | 2 +- include/FXDDSImage.h | 2 +- include/FXDLL.h | 2 +- include/FXDataTarget.h | 2 +- include/FXDate.h | 2 +- include/FXDebugTarget.h | 2 +- include/FXDelegator.h | 2 +- include/FXDial.h | 2 +- include/FXDialogBox.h | 2 +- include/FXDictionary.h | 2 +- include/FXDictionaryOf.h | 2 +- include/FXDir.h | 8 +- include/FXDirBox.h | 2 +- include/FXDirDialog.h | 2 +- include/FXDirList.h | 2 +- include/FXDirSelector.h | 2 +- include/FXDirVisitor.h | 2 +- include/FXDirWatch.h | 2 +- include/FXDispatcher.h | 2 +- include/FXDisplay.h | 2 +- include/FXDockBar.h | 2 +- include/FXDockHandler.h | 2 +- include/FXDockSite.h | 2 +- include/FXDockTitle.h | 2 +- include/FXDocument.h | 2 +- include/FXDragCorner.h | 2 +- include/FXDrawable.h | 2 +- include/FXDriveBox.h | 2 +- include/FXEXEIcon.h | 2 +- include/FXEXEImage.h | 2 +- include/FXElement.h | 2 +- include/FXEvent.h | 2 +- include/FXEventDispatcher.h | 2 +- include/FXEventLoop.h | 7 +- include/FXException.h | 2 +- include/FXExpression.h | 2 +- include/FXExtentd.h | 2 +- include/FXExtentf.h | 2 +- include/FXFile.h | 2 +- include/FXFileAssociations.h | 2 +- include/FXFileDialog.h | 2 +- include/FXFileList.h | 2 +- include/FXFileProgressDialog.h | 2 +- include/FXFileSelector.h | 2 +- include/FXFileStream.h | 5 +- include/FXFoldingList.h | 2 +- include/FXFont.h | 2 +- include/FXFontDialog.h | 2 +- include/FXFontSelector.h | 2 +- include/FXFrame.h | 2 +- include/FXGIFCursor.h | 2 +- include/FXGIFIcon.h | 2 +- include/FXGIFImage.h | 2 +- include/FXGLCanvas.h | 2 +- include/FXGLContext.h | 2 +- include/FXGLObject.h | 2 +- include/FXGLViewer.h | 2 +- include/FXGLVisual.h | 2 +- include/FXGZFileStream.h | 5 +- include/FXGauge.h | 2 +- include/FXGradientBar.h | 2 +- include/FXGroupBox.h | 2 +- include/FXHash.h | 2 +- include/FXHashOf.h | 2 +- include/FXHeader.h | 2 +- include/FXHorizontalFrame.h | 2 +- include/FXICOIcon.h | 2 +- include/FXICOImage.h | 2 +- include/FXIFFIcon.h | 2 +- include/FXIFFImage.h | 2 +- include/FXIO.h | 14 +- include/FXIOBuffer.h | 2 +- include/FXIODevice.h | 2 +- include/FXIcon.h | 2 +- include/FXIconCache.h | 2 +- include/FXIconList.h | 2 +- include/FXIconSource.h | 2 +- include/FXId.h | 2 +- include/FXImage.h | 2 +- include/FXImageFrame.h | 2 +- include/FXImageView.h | 2 +- include/FXInputDialog.h | 2 +- include/FXJP2Icon.h | 2 +- include/FXJP2Image.h | 2 +- include/FXJPGIcon.h | 2 +- include/FXJPGImage.h | 2 +- include/FXJSON.h | 2 +- include/FXJSONFile.h | 2 +- include/FXJSONString.h | 2 +- include/FXKnob.h | 2 +- include/FXLFQueue.h | 2 +- include/FXLabel.h | 2 +- include/FXList.h | 2 +- include/FXListBox.h | 2 +- include/FXLocale.h | 2 +- include/FXMDIButton.h | 2 +- include/FXMDIChild.h | 2 +- include/FXMDIClient.h | 2 +- include/FXMainWindow.h | 2 +- include/FXMat2d.h | 2 +- include/FXMat2f.h | 2 +- include/FXMat3d.h | 2 +- include/FXMat3f.h | 2 +- include/FXMat4d.h | 2 +- include/FXMat4f.h | 2 +- include/FXMatrix.h | 2 +- include/FXMemMap.h | 2 +- include/FXMemoryStream.h | 5 +- include/FXMenuBar.h | 2 +- include/FXMenuButton.h | 2 +- include/FXMenuCaption.h | 2 +- include/FXMenuCascade.h | 2 +- include/FXMenuCheck.h | 2 +- include/FXMenuCommand.h | 2 +- include/FXMenuPane.h | 2 +- include/FXMenuRadio.h | 2 +- include/FXMenuSeparator.h | 2 +- include/FXMenuTitle.h | 2 +- include/FXMessageBox.h | 2 +- include/FXMessageChannel.h | 2 +- include/FXMetaClass.h | 5 +- include/FXMutex.h | 2 +- include/FXObject.h | 2 +- include/FXObjectList.h | 2 +- include/FXOptionMenu.h | 2 +- include/FXPCXIcon.h | 2 +- include/FXPCXImage.h | 2 +- include/FXPNGIcon.h | 2 +- include/FXPNGImage.h | 2 +- include/FXPPMIcon.h | 2 +- include/FXPPMImage.h | 2 +- include/FXPacker.h | 2 +- include/FXParallel.h | 2 +- include/FXPath.h | 2 +- include/FXPicker.h | 2 +- include/FXPipe.h | 2 +- include/FXPoint.h | 2 +- include/FXPopup.h | 2 +- include/FXPrintDialog.h | 2 +- include/FXProcess.h | 2 +- include/FXProgressBar.h | 2 +- include/FXProgressDialog.h | 2 +- include/FXPtrList.h | 2 +- include/FXPtrQueue.h | 2 +- include/FXQuatd.h | 2 +- include/FXQuatf.h | 2 +- include/FXRASIcon.h | 2 +- include/FXRASImage.h | 2 +- include/FXRGBIcon.h | 2 +- include/FXRGBImage.h | 2 +- include/FXRadioButton.h | 2 +- include/FXRandom.h | 2 +- include/FXRangeSlider.h | 2 +- include/FXRanged.h | 2 +- include/FXRangef.h | 2 +- include/FXReactor.h | 2 +- include/FXReadWriteLock.h | 2 +- include/FXRealSlider.h | 2 +- include/FXRealSpinner.h | 2 +- include/FXRecentFiles.h | 2 +- include/FXRectangle.h | 2 +- include/FXRefPtr.h | 2 +- include/FXRegion.h | 2 +- include/FXRegistry.h | 2 +- include/FXReplaceDialog.h | 2 +- include/FXReverseDictionary.h | 2 +- include/FXReverseDictionaryOf.h | 2 +- include/FXRex.h | 2 +- include/FXRootWindow.h | 2 +- include/FXRuler.h | 2 +- include/FXRulerView.h | 2 +- include/FXRunnable.h | 2 +- include/FXScopedThread.h | 2 +- include/FXScrollArea.h | 2 +- include/FXScrollBar.h | 2 +- include/FXScrollPane.h | 2 +- include/FXScrollWindow.h | 2 +- include/FXSearchDialog.h | 2 +- include/FXSemaQueue.h | 2 +- include/FXSemaphore.h | 2 +- include/FXSeparator.h | 2 +- include/FXSettings.h | 2 +- include/FXShell.h | 2 +- include/FXShutter.h | 2 +- include/FXSize.h | 2 +- include/FXSlider.h | 2 +- include/FXSocket.h | 2 +- include/FXSphered.h | 2 +- include/FXSpheref.h | 2 +- include/FXSpinLock.h | 6 +- include/FXSpinner.h | 2 +- include/FXSplashWindow.h | 2 +- include/FXSplitter.h | 2 +- include/FXSpring.h | 2 +- include/FXStat.h | 2 +- include/FXStatusBar.h | 2 +- include/FXStatusLine.h | 2 +- include/FXStream.h | 5 +- include/FXString.h | 2 +- include/FXStringDictionary.h | 2 +- include/FXSwitcher.h | 2 +- include/FXSystem.h | 4 +- include/FXTGAIcon.h | 2 +- include/FXTGAImage.h | 2 +- include/FXTIFIcon.h | 2 +- include/FXTIFImage.h | 2 +- include/FXTabBar.h | 2 +- include/FXTabBook.h | 2 +- include/FXTabItem.h | 2 +- include/FXTable.h | 2 +- include/FXTaskGroup.h | 2 +- include/FXText.h | 2 +- include/FXTextCodec.h | 2 +- include/FXTextField.h | 2 +- include/FXThread.h | 27 +- include/FXThreadPool.h | 2 +- include/FXToggleButton.h | 2 +- include/FXToolBar.h | 2 +- include/FXToolBarGrip.h | 2 +- include/FXToolBarShell.h | 2 +- include/FXToolBarTab.h | 2 +- include/FXToolTip.h | 2 +- include/FXTopWindow.h | 2 +- include/FXTranslator.h | 2 +- include/FXTreeList.h | 2 +- include/FXTreeListBox.h | 2 +- include/FXTriStateButton.h | 2 +- include/FXURL.h | 2 +- include/FXUTF16Codec.h | 2 +- include/FXUTF32Codec.h | 2 +- include/FXUTF8Codec.h | 2 +- include/FXUndoList.h | 2 +- include/FXVariant.h | 2 +- include/FXVariantArray.h | 2 +- include/FXVariantMap.h | 2 +- include/FXVec2d.h | 2 +- include/FXVec2f.h | 2 +- include/FXVec3d.h | 2 +- include/FXVec3f.h | 2 +- include/FXVec4d.h | 2 +- include/FXVec4f.h | 2 +- include/FXVerticalFrame.h | 2 +- include/FXVisual.h | 2 +- include/FXWEBPIcon.h | 2 +- include/FXWEBPImage.h | 2 +- include/FXWSQueue.h | 2 +- include/FXWindow.h | 9 +- include/FXWizard.h | 2 +- include/FXWorker.h | 2 +- include/FXXBMIcon.h | 2 +- include/FXXBMImage.h | 2 +- include/FXXML.h | 4 +- include/FXXMLFile.h | 5 +- include/FXXMLString.h | 2 +- include/FXXPMIcon.h | 2 +- include/FXXPMImage.h | 2 +- include/FXhalf.h | 2 +- include/fx.h | 2 +- include/fx3d.h | 2 +- include/fxascii.h | 2 +- include/fxcpuid.h | 2 +- include/fxdefs.h | 6 +- include/fxendian.h | 2 +- include/fxkeys.h | 2 +- include/fxmath.h | 2 +- include/fxunicode.h | 2 +- include/fxver.h | 2 +- include/xincs.h | 2 +- lib/FX4Splitter.cpp | 2 +- lib/FX7Segment.cpp | 2 +- lib/FXAccelTable.cpp | 2 +- lib/FXApp.cpp | 39 +- lib/FXArray.cpp | 6 +- lib/FXArrowButton.cpp | 2 +- lib/FXAtomic.cpp | 2 +- lib/FXAutoThreadStorageKey.cpp | 2 +- lib/FXBMPIcon.cpp | 2 +- lib/FXBMPImage.cpp | 2 +- lib/FXBZFileStream.cpp | 2 +- lib/FXBarrier.cpp | 2 +- lib/FXBitmap.cpp | 2 +- lib/FXBitmapFrame.cpp | 2 +- lib/FXBitmapView.cpp | 2 +- lib/FXButton.cpp | 2 +- lib/FXCURCursor.cpp | 2 +- lib/FXCalendar.cpp | 2 +- lib/FXCalendarView.cpp | 2 +- lib/FXCanvas.cpp | 2 +- lib/FXCheckButton.cpp | 2 +- lib/FXChoiceBox.cpp | 2 +- lib/FXColorBar.cpp | 2 +- lib/FXColorDialog.cpp | 2 +- lib/FXColorList.cpp | 2 +- lib/FXColorRing.cpp | 2 +- lib/FXColorSelector.cpp | 2 +- lib/FXColorWell.cpp | 2 +- lib/FXColorWheel.cpp | 2 +- lib/FXColors.cpp | 2 +- lib/FXComboBox.cpp | 2 +- lib/FXCompletion.cpp | 2 +- lib/FXComplexd.cpp | 2 +- lib/FXComplexf.cpp | 2 +- lib/FXComposeContext.cpp | 2 +- lib/FXComposite.cpp | 2 +- lib/FXCondition.cpp | 2 +- lib/FXConsole.cpp | 2 +- lib/FXCursor.cpp | 6 +- lib/FXDC.cpp | 2 +- lib/FXDCPrint.cpp | 2 +- lib/FXDCWindow.cpp | 2 +- lib/FXDDSIcon.cpp | 2 +- lib/FXDDSImage.cpp | 2 +- lib/FXDLL.cpp | 2 +- lib/FXDataTarget.cpp | 2 +- lib/FXDate.cpp | 2 +- lib/FXDebugTarget.cpp | 2 +- lib/FXDelegator.cpp | 2 +- lib/FXDial.cpp | 2 +- lib/FXDialogBox.cpp | 2 +- lib/FXDictionary.cpp | 2 +- lib/FXDir.cpp | 2 +- lib/FXDirBox.cpp | 2 +- lib/FXDirDialog.cpp | 2 +- lib/FXDirList.cpp | 2 +- lib/FXDirSelector.cpp | 2 +- lib/FXDirVisitor.cpp | 2 +- lib/FXDirWatch.cpp | 2 +- lib/FXDispatcher.cpp | 2 +- lib/FXDisplay.cpp | 2 +- lib/FXDockBar.cpp | 2 +- lib/FXDockHandler.cpp | 2 +- lib/FXDockSite.cpp | 2 +- lib/FXDockTitle.cpp | 2 +- lib/FXDocument.cpp | 2 +- lib/FXDragCorner.cpp | 2 +- lib/FXDrawable.cpp | 2 +- lib/FXDriveBox.cpp | 2 +- lib/FXEXEIcon.cpp | 2 +- lib/FXEXEImage.cpp | 2 +- lib/FXEventDispatcher.cpp | 2 +- lib/FXEventLoop.cpp | 4 +- lib/FXException.cpp | 2 +- lib/FXExpression.cpp | 2 +- lib/FXExtentd.cpp | 2 +- lib/FXExtentf.cpp | 2 +- lib/FXFile.cpp | 2 +- lib/FXFileAssociations.cpp | 2 +- lib/FXFileDialog.cpp | 2 +- lib/FXFileList.cpp | 2 +- lib/FXFileProgressDialog.cpp | 2 +- lib/FXFileSelector.cpp | 6 +- lib/FXFileStream.cpp | 2 +- lib/FXFoldingList.cpp | 2 +- lib/FXFont.cpp | 2 +- lib/FXFontDialog.cpp | 2 +- lib/FXFontSelector.cpp | 2 +- lib/FXFrame.cpp | 2 +- lib/FXGIFCursor.cpp | 2 +- lib/FXGIFIcon.cpp | 2 +- lib/FXGIFImage.cpp | 2 +- lib/FXGLCanvas.cpp | 2 +- lib/FXGLContext.cpp | 2 +- lib/FXGLObject.cpp | 2 +- lib/FXGLViewer.cpp | 13 +- lib/FXGLVisual.cpp | 2 +- lib/FXGZFileStream.cpp | 2 +- lib/FXGauge.cpp | 2 +- lib/FXGradientBar.cpp | 2 +- lib/FXGroupBox.cpp | 2 +- lib/FXHash.cpp | 2 +- lib/FXHeader.cpp | 2 +- lib/FXHorizontalFrame.cpp | 2 +- lib/FXICOIcon.cpp | 2 +- lib/FXICOImage.cpp | 2 +- lib/FXIFFIcon.cpp | 2 +- lib/FXIFFImage.cpp | 2 +- lib/FXIO.cpp | 2 +- lib/FXIOBuffer.cpp | 2 +- lib/FXIODevice.cpp | 2 +- lib/FXIcon.cpp | 2 +- lib/FXIconCache.cpp | 2 +- lib/FXIconList.cpp | 2 +- lib/FXIconSource.cpp | 2 +- lib/FXId.cpp | 2 +- lib/FXImage.cpp | 6 +- lib/FXImageFrame.cpp | 2 +- lib/FXImageView.cpp | 2 +- lib/FXInputDialog.cpp | 2 +- lib/FXJP2Icon.cpp | 2 +- lib/FXJP2Image.cpp | 2 +- lib/FXJPGIcon.cpp | 2 +- lib/FXJPGImage.cpp | 2 +- lib/FXJSON.cpp | 2 +- lib/FXJSONFile.cpp | 2 +- lib/FXJSONString.cpp | 2 +- lib/FXKnob.cpp | 2 +- lib/FXLFQueue.cpp | 2 +- lib/FXLabel.cpp | 2 +- lib/FXList.cpp | 2 +- lib/FXListBox.cpp | 2 +- lib/FXLocale.cpp | 2 +- lib/FXMDIButton.cpp | 2 +- lib/FXMDIChild.cpp | 2 +- lib/FXMDIClient.cpp | 2 +- lib/FXMainWindow.cpp | 2 +- lib/FXMat2d.cpp | 2 +- lib/FXMat2f.cpp | 2 +- lib/FXMat3d.cpp | 2 +- lib/FXMat3f.cpp | 2 +- lib/FXMat4d.cpp | 2 +- lib/FXMat4f.cpp | 2 +- lib/FXMatrix.cpp | 2 +- lib/FXMemMap.cpp | 2 +- lib/FXMemoryStream.cpp | 2 +- lib/FXMenuBar.cpp | 2 +- lib/FXMenuButton.cpp | 2 +- lib/FXMenuCaption.cpp | 2 +- lib/FXMenuCascade.cpp | 2 +- lib/FXMenuCheck.cpp | 2 +- lib/FXMenuCommand.cpp | 2 +- lib/FXMenuPane.cpp | 2 +- lib/FXMenuRadio.cpp | 2 +- lib/FXMenuSeparator.cpp | 2 +- lib/FXMenuTitle.cpp | 2 +- lib/FXMessageBox.cpp | 2 +- lib/FXMessageChannel.cpp | 2 +- lib/FXMetaClass.cpp | 2 +- lib/FXMutex.cpp | 2 +- lib/FXObject.cpp | 2 +- lib/FXObjectList.cpp | 2 +- lib/FXOptionMenu.cpp | 2 +- lib/FXPCXIcon.cpp | 2 +- lib/FXPCXImage.cpp | 2 +- lib/FXPNGIcon.cpp | 2 +- lib/FXPNGImage.cpp | 2 +- lib/FXPPMIcon.cpp | 2 +- lib/FXPPMImage.cpp | 2 +- lib/FXPacker.cpp | 2 +- lib/FXPath.cpp | 2 +- lib/FXPicker.cpp | 11 +- lib/FXPipe.cpp | 2 +- lib/FXPoint.cpp | 2 +- lib/FXPopup.cpp | 2 +- lib/FXPrintDialog.cpp | 2 +- lib/FXProcess.cpp | 2 +- lib/FXProgressBar.cpp | 2 +- lib/FXProgressDialog.cpp | 2 +- lib/FXPtrList.cpp | 2 +- lib/FXPtrQueue.cpp | 2 +- lib/FXQuatd.cpp | 2 +- lib/FXQuatf.cpp | 2 +- lib/FXRASIcon.cpp | 2 +- lib/FXRASImage.cpp | 2 +- lib/FXRGBIcon.cpp | 2 +- lib/FXRGBImage.cpp | 2 +- lib/FXRadioButton.cpp | 2 +- lib/FXRandom.cpp | 4 +- lib/FXRangeSlider.cpp | 2 +- lib/FXRanged.cpp | 2 +- lib/FXRangef.cpp | 2 +- lib/FXReactor.cpp | 2 +- lib/FXReactorCore.h | 2 +- lib/FXReadWriteLock.cpp | 2 +- lib/FXRealSlider.cpp | 2 +- lib/FXRealSpinner.cpp | 2 +- lib/FXRecentFiles.cpp | 2 +- lib/FXRectangle.cpp | 2 +- lib/FXRegion.cpp | 2 +- lib/FXRegistry.cpp | 2 +- lib/FXReplaceDialog.cpp | 2 +- lib/FXReverseDictionary.cpp | 2 +- lib/FXRex.cpp | 8 +- lib/FXRootWindow.cpp | 2 +- lib/FXRuler.cpp | 2 +- lib/FXRulerView.cpp | 2 +- lib/FXScopedThread.cpp | 2 +- lib/FXScrollArea.cpp | 2 +- lib/FXScrollBar.cpp | 2 +- lib/FXScrollPane.cpp | 2 +- lib/FXScrollWindow.cpp | 2 +- lib/FXSearchDialog.cpp | 2 +- lib/FXSemaQueue.cpp | 2 +- lib/FXSemaphore.cpp | 2 +- lib/FXSeparator.cpp | 2 +- lib/FXSettings.cpp | 2 +- lib/FXShell.cpp | 2 +- lib/FXShutter.cpp | 2 +- lib/FXSize.cpp | 2 +- lib/FXSlider.cpp | 2 +- lib/FXSocket.cpp | 2 +- lib/FXSphered.cpp | 2 +- lib/FXSpheref.cpp | 2 +- lib/FXSpinLock.cpp | 2 +- lib/FXSpinner.cpp | 2 +- lib/FXSplashWindow.cpp | 2 +- lib/FXSplitter.cpp | 2 +- lib/FXSpring.cpp | 2 +- lib/FXStat.cpp | 2 +- lib/FXStatusBar.cpp | 2 +- lib/FXStatusLine.cpp | 2 +- lib/FXStream.cpp | 2 +- lib/FXString.cpp | 165 ++-- lib/FXStringDictionary.cpp | 2 +- lib/FXSwitcher.cpp | 2 +- lib/FXSystem.cpp | 2 +- lib/FXSystemTime.cpp | 2 +- lib/FXSystemTimeFormat.cpp | 2 +- lib/FXSystemTimeParse.cpp | 6 +- lib/FXTGAIcon.cpp | 2 +- lib/FXTGAImage.cpp | 2 +- lib/FXTIFIcon.cpp | 2 +- lib/FXTIFImage.cpp | 2 +- lib/FXTabBar.cpp | 2 +- lib/FXTabBook.cpp | 2 +- lib/FXTabItem.cpp | 2 +- lib/FXTable.cpp | 2 +- lib/FXTaskGroup.cpp | 2 +- lib/FXText.cpp | 187 ++-- lib/FXTextCodec.cpp | 2 +- lib/FXTextField.cpp | 2 +- lib/FXThread.cpp | 2 +- lib/FXThreadPool.cpp | 2 +- lib/FXToggleButton.cpp | 2 +- lib/FXToolBar.cpp | 2 +- lib/FXToolBarGrip.cpp | 2 +- lib/FXToolBarShell.cpp | 2 +- lib/FXToolBarTab.cpp | 2 +- lib/FXToolTip.cpp | 2 +- lib/FXTopWindow.cpp | 2 +- lib/FXTranslator.cpp | 2 +- lib/FXTreeList.cpp | 2 +- lib/FXTreeListBox.cpp | 2 +- lib/FXTriStateButton.cpp | 2 +- lib/FXURL.cpp | 2 +- lib/FXUTF16Codec.cpp | 2 +- lib/FXUTF32Codec.cpp | 2 +- lib/FXUTF8Codec.cpp | 2 +- lib/FXUndoList.cpp | 2 +- lib/FXVariant.cpp | 2 +- lib/FXVariantArray.cpp | 2 +- lib/FXVariantMap.cpp | 2 +- lib/FXVec2d.cpp | 2 +- lib/FXVec2f.cpp | 2 +- lib/FXVec3d.cpp | 2 +- lib/FXVec3f.cpp | 2 +- lib/FXVec4d.cpp | 2 +- lib/FXVec4f.cpp | 2 +- lib/FXVerticalFrame.cpp | 2 +- lib/FXVisual.cpp | 2 +- lib/FXWEBPIcon.cpp | 2 +- lib/FXWEBPImage.cpp | 2 +- lib/FXWSQueue.cpp | 2 +- lib/FXWindow.cpp | 6 +- lib/FXWizard.cpp | 2 +- lib/FXWorker.cpp | 2 +- lib/FXXBMIcon.cpp | 2 +- lib/FXXBMImage.cpp | 2 +- lib/FXXML.cpp | 2 +- lib/FXXMLFile.cpp | 2 +- lib/FXXMLString.cpp | 2 +- lib/FXXPMIcon.cpp | 2 +- lib/FXXPMImage.cpp | 2 +- lib/FXhalf.cpp | 2 +- lib/fxascii.cpp | 2 +- lib/fxbase64.cpp | 2 +- lib/fxbase85.cpp | 2 +- lib/fxbmpio.cpp | 2 +- lib/fxcompose.cpp | 2 +- lib/fxcpuid.cpp | 2 +- lib/fxddsio.cpp | 2 +- lib/fxexeio.cpp | 2 +- lib/fxezquantize.cpp | 2 +- lib/fxfsquantize.cpp | 2 +- lib/fxgetticks.cpp | 2 +- lib/fxgifio.cpp | 2 +- lib/fxiffio.cpp | 2 +- lib/fxjp2io.cpp | 2 +- lib/fxjpegio.cpp | 2 +- lib/fxkeyboard.cpp | 2 +- lib/fxkeysym.cpp | 2 +- lib/fxleaps.cpp | 2 +- lib/fxmath.cpp | 2 +- lib/fxntp.cpp | 2 +- lib/fxparsegeometry.cpp | 2 +- lib/fxpcxio.cpp | 2 +- lib/fxpngio.cpp | 2 +- lib/fxppmio.cpp | 2 +- lib/fxprintf.cpp | 54 +- lib/fxpriv.cpp | 2 +- lib/fxpriv.h | 2 +- lib/fxpsio.cpp | 2 +- lib/fxrasio.cpp | 2 +- lib/fxrgbio.cpp | 2 +- lib/fxscanf.cpp | 2 +- lib/fxstrtod.cpp | 2 +- lib/fxstrtoll.cpp | 2 +- lib/fxstrtoull.cpp | 2 +- lib/fxtabbify.cpp | 2 +- lib/fxtargaio.cpp | 2 +- lib/fxtifio.cpp | 2 +- lib/fxunicode.cpp | 2 +- lib/fxutils.cpp | 2 +- lib/fxwebpio.cpp | 2 +- lib/fxwuquantize.cpp | 2 +- lib/fxxbmio.cpp | 2 +- lib/fxxpmio.cpp | 2 +- lib/jitter.h | 2 +- lib/version.rc | 6 +- tests/bitmapviewer.cpp | 2 +- tests/button.cpp | 2 +- tests/calendar.cpp | 2 +- tests/codecs.cpp | 2 +- tests/console.cpp | 2 +- tests/datatarget.cpp | 2 +- tests/dctest.cpp | 2 +- tests/dialog.cpp | 2 +- tests/dirlist.cpp | 2 +- tests/format.cpp | 12 +- tests/foursplit.cpp | 2 +- tests/gaugetest.cpp | 2 +- tests/groupbox.cpp | 2 +- tests/half.cpp | 2 +- tests/header.cpp | 2 +- tests/iconlist.cpp | 2 +- tests/imageviewer.cpp | 2 +- tests/layout.cpp | 2 +- tests/match.cpp | 2 +- tests/math.cpp | 2 +- tests/mditest.cpp | 2 +- tests/memmap.cpp | 2 +- tests/minheritance.cpp | 2 +- tests/parallel.cpp | 2 +- tests/process.cpp | 2 +- tests/rex.cpp | 2 +- tests/scan.cpp | 2 +- tests/splitter.cpp | 2 +- tests/switcher.cpp | 2 +- tests/tabbook.cpp | 2 +- tests/table.cpp | 2 +- tests/thread.cpp | 2 +- tests/timefmt.cpp | 2 +- tests/unicode.cpp | 2 +- tests/wizard.cpp | 2 +- tests/xml.cpp | 2 +- utils/reswrap.cpp | 4 +- 701 files changed, 3501 insertions(+), 1453 deletions(-) create mode 100644 controlpanel/CMakeLists.txt create mode 100644 controlpanel/ControlPanel.1 create mode 100644 controlpanel/ControlPanel.cpp create mode 100644 controlpanel/ControlPanel.h create mode 100644 controlpanel/LICENSE create mode 100644 controlpanel/colors_gif.gif create mode 100644 controlpanel/controlpanel_gif.gif create mode 100644 controlpanel/filebinding_gif.gif create mode 100644 controlpanel/settings_gif.gif diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a76863..8270e20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,5 +10,6 @@ INCLUDE (CheckIncludeFiles) # Libraries add_subdirectory(utils) add_subdirectory(lib) +add_subdirectory(controlpanel) add_subdirectory(tests) diff --git a/LICENSE b/LICENSE index 8000a6f..fc8a5de 100644 --- a/LICENSE +++ b/LICENSE @@ -1,504 +1,165 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 - USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random - Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/LICENSE_ADDENDUM b/LICENSE_ADDENDUM index f3a019f..fef5adc 100644 --- a/LICENSE_ADDENDUM +++ b/LICENSE_ADDENDUM @@ -4,7 +4,7 @@ March 2003 Revised July 2007 - Copyright (C) 2002,2016 Jeroen van der Zijp. + Copyright (C) 2002,2021 Jeroen van der Zijp. Everyone is permitted to copy and distribute verbatim copies of this license addendum document, but changing it is not allowed. diff --git a/controlpanel/CMakeLists.txt b/controlpanel/CMakeLists.txt new file mode 100644 index 0000000..21b1d4c --- /dev/null +++ b/controlpanel/CMakeLists.txt @@ -0,0 +1,26 @@ + +set(FOX_LIBRARIES fox) +set(FOX_INCLUDE_DIRS $) + +set(TARGET_NAME ControlPanel) +set(SOURCES ControlPanel.cpp icons.cpp) +set(HEADERS ControlPanel.h icons.h) + +set(ICONS controlpanel_gif.gif + colors_gif.gif + filebinding_gif.gif + settings_gif.gif) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/icons.cpp ${CMAKE_CURRENT_SOURCE_DIR}/icons.h + COMMAND reswrap -h -o icons.h ${ICONS} + COMMAND reswrap -i icons.h -o icons.cpp ${ICONS} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS reswrap + VERBATIM + ) + +add_executable(${TARGET_NAME} ${SOURCES} ${HEADERS}) +target_include_directories(${TARGET_NAME} PRIVATE ${FOX_INCLUDE_DIRS}) +target_link_libraries(${TARGET_NAME} PUBLIC fox) + diff --git a/controlpanel/ControlPanel.1 b/controlpanel/ControlPanel.1 new file mode 100644 index 0000000..c404080 --- /dev/null +++ b/controlpanel/ControlPanel.1 @@ -0,0 +1,28 @@ +.TH ControlPanel 1 "April 2021" +.SH NAME +ControlPanel \- Configure desktop settings for FOX Toolkit applications +.SH SYNOPSIS +\fBControlPanel\fP +.SH DESCRIPTION +.LP +The ControlPanel allows the user to change the color themes, fonts, and file bindings of +FOX Toolkit based programs. + +.SH USAGE +.LP +The ControlPanel has three tabs: \fBThemes\fP, \fBBindings\fP, and \fBGeneral\fP. + +.br +The Themes tab is used to control color themes, individual colors, and the system +font. + +.br +The Bindings tab is used to associate file extension-associations with a description, +command, and mime-type. The user can also assign icons. + +.br +The General tab is used to control some common parameters of FOX Toolkit programs, such as +tooltip delay, mouse wheel speed, and so on. + +.SH AUTHOR +This man page was written by Jeroen van der Zijp . diff --git a/controlpanel/ControlPanel.cpp b/controlpanel/ControlPanel.cpp new file mode 100644 index 0000000..1d2f0ea --- /dev/null +++ b/controlpanel/ControlPanel.cpp @@ -0,0 +1,1344 @@ +/******************************************************************************** +* * +* FOX Desktop Setup - FOX Desktop Enviroment * +* * +********************************************************************************* +* Copyright (C) 2004,2021 Sander Jansen. All Rights Reserved. * +********************************************************************************* +* This library is free software; you can redistribute it and/or modify * +* it under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 3 of the License, or * +* (at your option) any later version. * +* * +* This library 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 Lesser General Public License for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see * +********************************************************************************/ +#include +#include +#include "ControlPanel.h" +#include "icons.h" + +// Place to look for executables +#if defined(WIN32) +#define SUGGESTED_FOLDER "C:\\Windows\\System32\\" +#else +#define SUGGESTED_FOLDER "/usr/bin/" +#endif + +// Executable file extensions +#if defined(WIN32) +#define SUGGESTED_PATTERNS "Executables (*.com,*.exe,*.bat,*.cmd)\nAll Files (*)" +#else +#define SUGGESTED_PATTERNS "All Files (*)" +#endif + +// Padding for the dialog elements +#define DEFAULT_SPACING 6 + +/*******************************************************************************/ + + +const ColorTheme ColorThemes[]={ +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| +//| Name | Base | Border | Back | Fore | Selback | Selfore | Tipback | Tipfore | Menuback | Menufore | +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| + {"FOX" ,FXRGB(212,208,200),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 10, 36,106),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 10, 36,106),FXRGB(255,255,255)}, + {"Gnome" ,FXRGB(214,215,214),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 0, 0,128),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 0, 0,128),FXRGB(255,255,255)}, + {"Atlas Green" ,FXRGB(175,180,159),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(111,122, 99),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(111,122, 99),FXRGB(255,255,255)}, + {"BeOS" ,FXRGB(217,217,217),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(168,168,168),FXRGB( 0, 0, 0),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(168,168,168),FXRGB( 0, 0, 0)}, + {"Blue Slate" ,FXRGB(239,239,239),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255)}, +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| +//| Name | Base | Border | Back | Fore | Selback | Selfore | Tipback | Tipfore | Menuback | Menufore | +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| + {"CDE" ,FXRGB(156,153,156),FXRGB( 0, 0, 0),FXRGB(131,129,131),FXRGB(255,255,255),FXRGB( 49, 97,131),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 49, 97,131),FXRGB(255,255,255)}, + {"Digital CDE" ,FXRGB( 74,121,131),FXRGB( 0, 0, 0),FXRGB( 55, 77, 78),FXRGB(255,255,255),FXRGB( 82,102,115),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 82,102,115),FXRGB(255,255,255)}, + {"Dark Blue" ,FXRGB( 66,103,148),FXRGB( 0, 0, 0),FXRGB( 0, 42, 78),FXRGB(255,255,255),FXRGB( 92,179,255),FXRGB( 0, 0, 0),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 92,179,255),FXRGB( 0, 0, 0)}, + {"Desert FOX" ,FXRGB(214,205,187),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(128, 0, 0),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(128, 0, 0),FXRGB(255,255,255)}, + {"EveX" ,FXRGB(230,222,220),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 10, 95,137),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 10, 95,137),FXRGB(255,255,255)}, +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| +//| Name | Base | Border | Back | Fore | Selback | Selfore | Tipback | Tipfore | Menuback | Menufore | +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| + {"Galaxy" ,FXRGB(239,239,239),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255)}, + {"iMac" ,FXRGB(205,206,205),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 0, 0,128),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 0, 0,128),FXRGB(255,255,255)}, + {"KDE 1" ,FXRGB(192,192,192),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 0, 0,128),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 0, 0,128),FXRGB(255,255,255)}, + {"KDE 2" ,FXRGB(220,220,220),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 10, 95,137),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 10, 95,137),FXRGB(255,255,255)}, + {"KDE 3" ,FXRGB(238,238,230),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(255,221,118),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(255,221,118),FXRGB(255,255,255)}, +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| +//| Name | Base | Border | Back | Fore | Selback | Selfore | Tipback | Tipfore | Menuback | Menufore | +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| + {"Keramik" ,FXRGB(234,233,232),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(169,209,255),FXRGB( 0, 0, 0),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(169,209,255),FXRGB( 0, 0, 0)}, + {"Keramik Emerald" ,FXRGB(238,238,230),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(134,204,134),FXRGB( 0, 0, 0),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(134,204,134),FXRGB( 0, 0, 0)}, + {"Keramik White" ,FXRGB(239,239,239),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255)}, + {"Mandrake" ,FXRGB(230,231,230),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 33, 68,156),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 33, 68,156),FXRGB(255,255,255)}, + {"Media Peach" ,FXRGB(239,239,239),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255)}, +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| +//| Name | Base | Border | Back | Fore | Selback | Selfore | Tipback | Tipfore | Menuback | Menufore | +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| + {"Next" ,FXRGB(168,168,168),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 0, 0, 0),FXRGB(255,255,255)}, + {"Pale Gray" ,FXRGB(214,214,214),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 0, 0, 0),FXRGB(255,255,255)}, + {"Plastik" ,FXRGB(239,239,239),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(103,141,178),FXRGB(255,255,255)}, + {"Pumpkin" ,FXRGB(238,216,174),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(205,133, 63),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(205,133, 63),FXRGB(255,255,255)}, + {"Redmond 95" ,FXRGB(195,195,195),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 0, 0,128),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 0, 0,128),FXRGB(255,255,255)}, +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| +//| Name | Base | Border | Back | Fore | Selback | Selfore | Tipback | Tipfore | Menuback | Menufore | +//|--------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------| + {"Redmond 2000" ,FXRGB(212,208,200),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 0, 36,104),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 0, 36,104),FXRGB(255,255,255)}, + {"Redmond XP" ,FXRGB(238,238,230),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 74,121,205),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 74,121,205),FXRGB(255,255,255)}, + {"Solaris" ,FXRGB(174,178,195),FXRGB( 0, 0, 0),FXRGB(147,151,165),FXRGB( 0, 0, 0),FXRGB(113,139,165),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(113,139,165),FXRGB(255,255,255)}, + {"Storm" ,FXRGB(192,192,192),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB(139, 0,139),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB(139, 0,139),FXRGB(255,255,255)}, + {"Sea Sky" ,FXRGB(165,178,198),FXRGB( 0, 0, 0),FXRGB(255,255,255),FXRGB( 0, 0, 0),FXRGB( 49,101,156),FXRGB(255,255,255),FXRGB(255,255,225),FXRGB( 0, 0, 0),FXRGB( 49,101,156),FXRGB(255,255,255)}, + }; + + +const FXint numThemes=ARRAYNUMBER(ColorThemes); + +/*******************************************************************************/ + + +// Messages +FXDEFMAP(FXDesktopSetup) FXDesktopSetupMap[]={ + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_COLORS,FXDesktopSetup::onColorChanged), + FXMAPFUNC(SEL_CHANGED,FXDesktopSetup::ID_COLORS,FXDesktopSetup::onColorChanged), + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_COLOR_THEME,FXDesktopSetup::onColorTheme), + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_CHOOSE_FONT,FXDesktopSetup::onChooseFont), + FXMAPFUNC(SEL_CHANGED,FXDesktopSetup::ID_SELECT_FILEBINDING,FXDesktopSetup::onCmdFileBinding), + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_SELECT_COMMAND,FXDesktopSetup::onCmdSelectCommand), + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_SELECT_MIMETYPE,FXDesktopSetup::onCmdMimeType), + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_CREATE_FILEBINDING,FXDesktopSetup::onCmdCreateFileBinding), + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_REMOVE_FILEBINDING,FXDesktopSetup::onCmdRemoveFileBinding), + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_RENAME_FILEBINDING,FXDesktopSetup::onCmdRenameFileBinding), + FXMAPFUNC(SEL_UPDATE,FXDesktopSetup::ID_RUN_IN_TERMINAL,FXDesktopSetup::onUpdRunInTerminal), + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_RUN_IN_TERMINAL,FXDesktopSetup::onCmdRunInTerminal), + FXMAPFUNC(SEL_UPDATE,FXDesktopSetup::ID_CHANGE_DIRECTORY,FXDesktopSetup::onUpdChangeDirectory), + FXMAPFUNC(SEL_COMMAND,FXDesktopSetup::ID_CHANGE_DIRECTORY,FXDesktopSetup::onCmdChangeDirectory), + FXMAPFUNCS(SEL_COMMAND,FXDesktopSetup::ID_SELECT_ICON_BIG,FXDesktopSetup::ID_SELECT_ICON_MINIOPEN,FXDesktopSetup::onCmdSelectIcon), + }; + + +// Object implementation +FXIMPLEMENT(FXDesktopSetup,FXMainWindow,FXDesktopSetupMap,ARRAYNUMBER(FXDesktopSetupMap)) + +/*******************************************************************************/ + +// Construct window +FXDesktopSetup::FXDesktopSetup(FXApp *ap):FXMainWindow(ap,FXString::null,NULL,NULL,DECOR_ALL,0,0,0,0){ + const FXlong milliseconds=1000000L; + + // Set title + setTitle(tr("FOX Desktop Setup")); + + // Grab stock font's description + FXFontDesc fontdescription=getApp()->getNormalFont()->getFontDesc(); + + // Make some icons + desktopicon=new FXGIFIcon(getApp(),controlpanel_gif); + icon_colors=new FXGIFIcon(getApp(),colors_gif); + icon_settings=new FXGIFIcon(getApp(),settings_gif); + icon_filebinding=new FXGIFIcon(getApp(),filebinding_gif); + + // New font for sampler + font=new FXFont(getApp(),fontdescription); + + // New font for caption; same typeface, only bigger + fontdescription.size=(fontdescription.size*15)/10; + titlefont=new FXFont(getApp(),fontdescription); + + // Main frame + FXVerticalFrame *main=new FXVerticalFrame(this,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,0,0,0,0,0,0); + + // Create nice header + FXLabel *caption=new FXLabel(main,tr("FOX Desktop Setup"),desktopicon,LAYOUT_FILL_X|JUSTIFY_LEFT|TEXT_AFTER_ICON,0,0,0,0,5,5,5,5); + caption->setBackColor(FXRGB(255,255,255)); + caption->setTextColor(FXRGB( 0, 0, 0)); + caption->setFont(titlefont); + + // Separator between header and the rest + new FXSeparator(main,SEPARATOR_GROOVE|LAYOUT_FILL_X); + + // Frame for contents below header + FXHorizontalFrame *hmainframe=new FXHorizontalFrame(main,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,0,0,0,0,0,0); + FXVerticalFrame *buttonframe=new FXVerticalFrame(hmainframe,LAYOUT_FILL_Y|LAYOUT_LEFT|PACK_UNIFORM_WIDTH|PACK_UNIFORM_HEIGHT,0,0,0,0, DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + + // Separator between button frame and subpanels + new FXSeparator(hmainframe,SEPARATOR_GROOVE|LAYOUT_FILL_Y); + + // Switched frame + FXSwitcher *switcher=new FXSwitcher(hmainframe,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,0,0,0,0); + + FXVerticalFrame* vframe1=new FXVerticalFrame(buttonframe,FRAME_SUNKEN,0,0,0,0,0,0,0,0); + new FXButton(vframe1,tr("Themes"),icon_colors,switcher,FXSwitcher::ID_OPEN_FIRST,FRAME_RAISED|ICON_ABOVE_TEXT|LAYOUT_FILL); + FXVerticalFrame* vframe2=new FXVerticalFrame(buttonframe,FRAME_SUNKEN,0,0,0,0,0,0,0,0); + new FXButton(vframe2,tr("Bindings"),icon_filebinding,switcher,FXSwitcher::ID_OPEN_SECOND,FRAME_RAISED|ICON_ABOVE_TEXT|LAYOUT_FILL); + FXVerticalFrame* vframe3=new FXVerticalFrame(buttonframe,FRAME_SUNKEN,0,0,0,0,0,0,0,0); + new FXButton(vframe3,tr("General"),icon_settings,switcher,FXSwitcher::ID_OPEN_THIRD,FRAME_RAISED|ICON_ABOVE_TEXT|LAYOUT_FILL); + + /// Color Settings Panel /// + FXVerticalFrame* vframe4=new FXVerticalFrame(switcher,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,0,0,0,0,0,0); + + FXHorizontalFrame* hframe1=new FXHorizontalFrame(vframe4,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,0,0,0,0,0,0); + new FXSeparator(vframe4,SEPARATOR_GROOVE|LAYOUT_FILL_X); + + + FXVerticalFrame* frame1=new FXVerticalFrame(hframe1,LAYOUT_FILL_Y,0,0,0,0,0,0,0,0,0,0); + new FXSeparator(hframe1,SEPARATOR_GROOVE|LAYOUT_FILL_Y); + + FXVerticalFrame *themeframe=new FXVerticalFrame(frame1,LAYOUT_FILL_X,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + new FXLabel(themeframe,tr("Theme: "),NULL,LAYOUT_CENTER_Y); + list=new FXListBox(themeframe,this,ID_COLOR_THEME,LAYOUT_FILL_X|FRAME_SUNKEN|FRAME_THICK); + list->setNumVisible(9); + + new FXSeparator(frame1,SEPARATOR_GROOVE|LAYOUT_FILL_X); + + // Matrix for color wells + FXMatrix* matrix1=new FXMatrix(frame1,2,LAYOUT_FILL_Y|MATRIX_BY_COLUMNS,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,1,1); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_base,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Base Color"),NULL,LAYOUT_CENTER_Y); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_border,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Border Color"),NULL,LAYOUT_CENTER_Y); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_fore,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Text Color"),NULL,LAYOUT_CENTER_Y); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_back,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Background Color"),NULL,LAYOUT_CENTER_Y); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_selfore,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Selected Text Color"),NULL,LAYOUT_CENTER_Y); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_selback,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Selected Background Color"),NULL,LAYOUT_CENTER_Y); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_menufore,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Selected Menu Text Color"),NULL,LAYOUT_CENTER_Y); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_menuback,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Selected Menu Background Color"),NULL,LAYOUT_CENTER_Y); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_tipfore,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Tip Text Color"),NULL,LAYOUT_CENTER_Y); + + new FXColorWell(matrix1,FXRGB(0,0,255),&target_tipback,FXDataTarget::ID_VALUE); + new FXLabel(matrix1,tr("Tip Background Color"),NULL,LAYOUT_CENTER_Y); + + // Sample gui fragment showing colors + FXVerticalFrame* frame2=new FXVerticalFrame(hframe1,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,0,0); + + tabbook=new FXTabBook(frame2,NULL,0,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,0,0,0,0); + tabitem=new FXTabItem(tabbook,tr(" Item 1 ")); + tabframe=new FXVerticalFrame(tabbook,LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_THICK|FRAME_RAISED); + + labeltextframe1=new FXHorizontalFrame(tabframe,LAYOUT_FILL_X); + label1=new FXLabel(labeltextframe1,tr("Label with Text"),NULL); + textfield1=new FXTextField(labeltextframe1,30,NULL,0,LAYOUT_FILL_X|FRAME_THICK|FRAME_SUNKEN); + textfield1->setText(tr("Select this text, to see the selected colors")); + + labeltextframe2=new FXHorizontalFrame(tabframe,LAYOUT_FILL_X); + textframe1=new FXHorizontalFrame(labeltextframe2,LAYOUT_FILL_X|FRAME_THICK|FRAME_SUNKEN,0,0,0,0,2,2,2,2,0,0); + label3=new FXLabel(textframe1,tr("Selected Text (with focus)"),NULL,LAYOUT_FILL_X,0,0,0,0,1,1,1,1); + textframe2=new FXHorizontalFrame(labeltextframe2,LAYOUT_FILL_X|FRAME_THICK|FRAME_SUNKEN,0,0,0,0,2,2,2,2,0,0); + label4=new FXLabel(textframe2,tr("Selected Text (no focus)"),NULL,LAYOUT_FILL_X,0,0,0,0,1,1,1,1); + + sep1=new FXSeparator(tabframe,LAYOUT_FILL_X|SEPARATOR_LINE); + + tabsubframe=new FXHorizontalFrame(tabframe,LAYOUT_FILL_X|LAYOUT_FILL_Y); + + grpbox1=new FXGroupBox(tabsubframe,tr("MenuPane"),FRAME_GROOVE|LAYOUT_FILL_Y|LAYOUT_FILL_X); + + menuframe=new FXVerticalFrame(grpbox1,FRAME_RAISED|FRAME_THICK|LAYOUT_CENTER_X|LAYOUT_CENTER_Y,0,0,0,0,0,0,0,0,0,0); + menulabels[0]=new FXLabel(menuframe,tr("&Open"),NULL,LABEL_NORMAL,0,0,0,0,16,4); + menulabels[1]=new FXLabel(menuframe,tr("S&ave"),NULL,LABEL_NORMAL,0,0,0,0,16,4); + sep2=new FXSeparator(menuframe,LAYOUT_FILL_X|SEPARATOR_GROOVE); + menulabels[2]=new FXLabel(menuframe,tr("I&mport"),NULL,LABEL_NORMAL,0,0,0,0,16,4); + menulabels[4]=new FXLabel(menuframe,tr("Selected Menu Entry"),NULL,LABEL_NORMAL,0,0,0,0,16,4); + menulabels[3]=new FXLabel(menuframe,tr("Print"),NULL,LABEL_NORMAL,0,0,0,0,16,4); + sep3=new FXSeparator(menuframe,LAYOUT_FILL_X|SEPARATOR_GROOVE); + menulabels[5]=new FXLabel(menuframe,tr("&Quit"),NULL,LABEL_NORMAL,0,0,0,0,16,4); + + grpbox2=new FXGroupBox(tabsubframe,tr("Tooltips"),FRAME_GROOVE|LAYOUT_FILL_Y|LAYOUT_FILL_X); + + label2=new FXLabel(grpbox2,tr("Sample Tooltip"),NULL,FRAME_LINE|LAYOUT_CENTER_X); + label5=new FXLabel(grpbox2,tr("Multiline Sample\n Tooltip"),NULL,FRAME_LINE|LAYOUT_CENTER_X); + + FXHorizontalFrame* hframe2=new FXHorizontalFrame(vframe4,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + + new FXLabel(hframe2,tr("Normal Font: "),NULL,LAYOUT_CENTER_Y); + fontbutton=new FXButton(hframe2," ",NULL,this,ID_CHOOSE_FONT,LAYOUT_CENTER_Y|FRAME_RAISED|JUSTIFY_CENTER_X|JUSTIFY_CENTER_Y|LAYOUT_FILL_X); + + /// File Binding Panel /// + FXVerticalFrame* vframe5=new FXVerticalFrame(switcher,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,0,0,0,0,0,0); + + // Icon search path + FXHorizontalFrame* hframe3=new FXHorizontalFrame(vframe5,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + new FXLabel(hframe3,tr("Icon Search Path:"),NULL,LAYOUT_CENTER_Y); + FXTextField* icondirs=new FXTextField(hframe3,2,&target_iconpath,FXDataTarget::ID_VALUE,LAYOUT_SIDE_LEFT|LAYOUT_FILL_X|LAYOUT_CENTER_Y|FRAME_SUNKEN|FRAME_THICK); + icondirs->setTipText(tr("List of directories to search for icons.")); + + new FXSeparator(vframe5,SEPARATOR_GROOVE|LAYOUT_FILL_X); + + FXHorizontalFrame* hframe4=new FXHorizontalFrame(vframe5,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,0,0,0,0,0,0); + + // File extensions + FXVerticalFrame* vframe6=new FXVerticalFrame(hframe4,LAYOUT_FILL_Y,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + + // Caption above file extensions list + new FXLabel(vframe6,tr("File Extensions: ")); + FXVerticalFrame* frame3=new FXVerticalFrame(vframe6,FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_Y|LAYOUT_FILL_X,0,0,0,0,0,0,0,0); + + // List of file bindings + filebindinglist=new FXList(frame3,this,ID_SELECT_FILEBINDING,LAYOUT_FILL_Y|LAYOUT_FILL_X|LIST_BROWSESELECT); + filebindinglist->setSortFunc(FXList::ascending); + + // Buttons + FXHorizontalFrame *listbuttonframe=new FXHorizontalFrame(vframe6,PACK_UNIFORM_WIDTH|LAYOUT_FILL_X,0,0,0,0,0,0,0,0); + new FXButton(listbuttonframe,tr("&New\tAdd New Binding"),NULL,this,ID_CREATE_FILEBINDING); + new FXButton(listbuttonframe,tr("&Delete\tDelete Selected Binding"),NULL,this,ID_REMOVE_FILEBINDING); + new FXButton(listbuttonframe,tr("&Edit\tEdit Binding Name"),NULL,this,ID_RENAME_FILEBINDING); + + new FXSeparator(hframe4,SEPARATOR_GROOVE|LAYOUT_FILL_Y); + + // Associated stuff + FXVerticalFrame* vframe7=new FXVerticalFrame(hframe4,LAYOUT_FILL_Y|LAYOUT_FILL_X,0,0,0,0,0,0,0,0,0,0); + + // Description + FXPacker *packer=new FXPacker(vframe7,LAYOUT_FILL_X,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + new FXLabel(packer,tr("Description:")); + FXTextField* description=new FXTextField(packer,2,&target_filebinding_description,FXDataTarget::ID_VALUE,LAYOUT_SIDE_LEFT|LAYOUT_FILL_X|LAYOUT_CENTER_Y|FRAME_SUNKEN|FRAME_THICK); + description->setTipText(tr("Short description of file type.")); + + new FXSeparator(vframe7,SEPARATOR_GROOVE|LAYOUT_FILL_X); + + // Command to execute + packer=new FXPacker(vframe7,LAYOUT_FILL_X,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + new FXLabel(packer,"Command:"); + FXCheckButton *checkbutton1=new FXCheckButton(packer,tr("Run in terminal\t\tRun command in terminal."),this,ID_RUN_IN_TERMINAL,ICON_BEFORE_TEXT|LAYOUT_LEFT|LAYOUT_SIDE_BOTTOM); + FXCheckButton *checkbutton2=new FXCheckButton(packer,tr("Change directory\t\tChange directory before running command."),this,ID_CHANGE_DIRECTORY,ICON_BEFORE_TEXT|LAYOUT_LEFT|LAYOUT_SIDE_BOTTOM); + new FXButton(packer,"...",NULL,this,ID_SELECT_COMMAND,LAYOUT_SIDE_RIGHT|LAYOUT_CENTER_Y|FRAME_RAISED|FRAME_THICK); + FXTextField* command=new FXTextField(packer,2,&target_filebinding_command,FXDataTarget::ID_VALUE,LAYOUT_SIDE_LEFT|LAYOUT_FILL_X|LAYOUT_CENTER_Y|FRAME_SUNKEN|FRAME_THICK); + command->setTipText(tr("Path to program associated with the file\nCommand line arguments are assembled from the selected file(s) as follows:\n %f Replaced by current filename;\n %F Replaced by selected filenames;\n %u Replaced by URL encoding of current filename;\n %U Replaced by URL encoding of selected files;\n %d Replaced by current working directory;\n %% Replaced by simply '%'.")); + new FXSeparator(vframe7,SEPARATOR_GROOVE|LAYOUT_FILL_X); + + // Mime types + packer=new FXPacker(vframe7,LAYOUT_FILL_X,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + new FXLabel(packer,tr("Mime Type:")); + mimetypelist=new FXComboBox(packer,1,this,ID_SELECT_MIMETYPE,LAYOUT_FILL_X|FRAME_SUNKEN|FRAME_THICK|COMBOBOX_NO_REPLACE); + mimetypelist->setSortFunc(FXList::ascending); + mimetypelist->setNumVisible(9); + mimetypelist->setTipText(tr("Select existing mime-type or type in new one\nMime type is used to identify format of item during drag and drop and clipboard operations.")); + + new FXSeparator(vframe7,SEPARATOR_GROOVE|LAYOUT_FILL_X); + + // Icons to show + FXMatrix *iconsmatrix=new FXMatrix(vframe7,4,MATRIX_BY_COLUMNS|LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0, DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + new FXLabel(iconsmatrix,tr("Small"),NULL,LAYOUT_CENTER_X|LAYOUT_FILL_COLUMN); + new FXLabel(iconsmatrix,tr("Big"),NULL,LAYOUT_CENTER_X|LAYOUT_FILL_COLUMN); + new FXLabel(iconsmatrix,tr("Small Open"),NULL,LAYOUT_CENTER_X|LAYOUT_FILL_COLUMN); + new FXLabel(iconsmatrix,tr("Big Open"),NULL,LAYOUT_CENTER_X|LAYOUT_FILL_COLUMN); + iconbutton[MINI_ICON]=new FXButton(iconsmatrix,tr("\tChange icon"),NULL,this,ID_SELECT_ICON_MINI,FRAME_RAISED|LAYOUT_CENTER_X|LAYOUT_CENTER_Y|JUSTIFY_CENTER_X|JUSTIFY_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT,0,0,68,68, 1,1,1,1); + iconbutton[BIG_ICON]=new FXButton(iconsmatrix,tr("\tChange icon"),NULL,this,ID_SELECT_ICON_BIG,FRAME_RAISED|LAYOUT_CENTER_X|LAYOUT_CENTER_Y|JUSTIFY_CENTER_X|JUSTIFY_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT,0,0,68,68, 1,1,1,1); + iconbutton[MINI_ICON_OPEN]=new FXButton(iconsmatrix,tr("\tChange icon"),NULL,this,ID_SELECT_ICON_MINIOPEN,FRAME_RAISED|LAYOUT_CENTER_X|LAYOUT_CENTER_Y|JUSTIFY_CENTER_X|JUSTIFY_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT,0,0,68,68, 1,1,1,1); + iconbutton[BIG_ICON_OPEN]=new FXButton(iconsmatrix,tr("\tChange icon"),NULL,this,ID_SELECT_ICON_BIGOPEN,FRAME_RAISED|LAYOUT_CENTER_X|LAYOUT_CENTER_Y|JUSTIFY_CENTER_X|JUSTIFY_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT,0,0,68,68, 1,1,1,1); + iconimage[MINI_ICON]=NULL; + iconimage[BIG_ICON]=NULL; + iconimage[MINI_ICON_OPEN]=NULL; + iconimage[BIG_ICON_OPEN]=NULL; + + /// Miscellaneous Parameters Panel /// + FXHorizontalFrame* hframe5=new FXHorizontalFrame(switcher,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,0,0,0,0,0,0); + FXMatrix* matrix2=new FXMatrix(hframe5,3,LAYOUT_FILL_Y|MATRIX_BY_COLUMNS,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + + // Type speed + new FXLabel(matrix2,tr("Typing Speed\t\tTyping Speed"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner1=new FXSpinner(matrix2,4,&target_typingspeed,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner1->setRange(1,9999); + spinner1->setIncrement(500); + new FXLabel(matrix2,"ms",NULL,LAYOUT_CENTER_Y); + + // Double click speed + new FXLabel(matrix2,tr("Double Click Speed\t\tDouble Click Speed"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner2=new FXSpinner(matrix2,4,&target_clickspeed,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner2->setRange(1,9999); + spinner2->setIncrement(100); + new FXLabel(matrix2,"ms",NULL,LAYOUT_CENTER_Y); + + // Scroll speed + new FXLabel(matrix2,tr("Scroll Speed\t\tScroll Speed"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner3=new FXSpinner(matrix2,4,&target_scrollspeed,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner3->setRange(1,9999); + spinner3->setIncrement(10); + new FXLabel(matrix2,"ms",NULL,LAYOUT_CENTER_Y); + + // Scroll delay + new FXLabel(matrix2,tr("Scroll Delay\t\tScroll Delay"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner4=new FXSpinner(matrix2,4,&target_scrolldelay,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner4->setRange(1,9999); + spinner4->setIncrement(100); + new FXLabel(matrix2,"ms",NULL,LAYOUT_CENTER_Y); + + // Cursor blink speed + new FXLabel(matrix2,tr("Cursor Blink Speed\t\tCursor Blink Speed"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner5=new FXSpinner(matrix2,4,&target_blinkspeed,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner5->setRange(1,9999); + spinner5->setIncrement(100); + new FXLabel(matrix2,"ms",NULL,LAYOUT_CENTER_Y); + + // Animation speed + new FXLabel(matrix2,tr("Animation Speed\t\tAnimation Speed"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner6=new FXSpinner(matrix2,4,&target_animspeed,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner6->setRange(1,9999); + spinner6->setIncrement(1); + new FXLabel(matrix2,"ms",NULL,LAYOUT_CENTER_Y); + + // Popup menu delay + new FXLabel(matrix2,tr("Cascade Menu Popup Delay\t\tAmount of delay before cascading menu is shown"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner7=new FXSpinner(matrix2,4,&target_menupause,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner7->setRange(1,9999); + spinner7->setIncrement(100); + new FXLabel(matrix2,"ms",NULL,LAYOUT_CENTER_Y); + + // Tooltip popup delay + new FXLabel(matrix2,tr("Tooltip Popup Delay\t\tAmount of Delay before tooltip is shown "),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner8=new FXSpinner(matrix2,4,&target_tooltippause,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner8->setRange(1,9999); + spinner8->setIncrement(100); + new FXLabel(matrix2,"ms",NULL,LAYOUT_CENTER_Y); + + // Tooltip display time + new FXLabel(matrix2,tr("Tooltip Time\t\tTime that tooltips are shown"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner9=new FXSpinner(matrix2,4,&target_tooltiptime,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner9->setRange(1,9999); + spinner9->setIncrement(500); + new FXLabel(matrix2,"ms",NULL,LAYOUT_CENTER_Y); + + // Drag delta jitter + new FXLabel(matrix2,tr("Drag Delta\t\tMinimum distance considered a mouse move"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner10=new FXSpinner(matrix2,4,&target_dragdelta,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner10->setRange(1,9999); + spinner10->setIncrement(1); + new FXFrame(matrix2,FRAME_NONE); + + // Mouse wheel lines + new FXLabel(matrix2,tr("Wheel Lines"),NULL,LAYOUT_RIGHT|LAYOUT_CENTER_Y); + FXSpinner* spinner11=new FXSpinner(matrix2,4,&target_wheellines,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner11->setRange(1,100); + + new FXSeparator(hframe5,SEPARATOR_GROOVE|LAYOUT_FILL_Y); + + FXMatrix* matrix3=new FXMatrix(hframe5,2,LAYOUT_FILL_Y|MATRIX_BY_COLUMNS,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + + // Maximum colors spinner + new FXLabel(matrix3,tr("Maximum Colors Allocated")); + FXSpinner* spinner12=new FXSpinner(matrix3,3,&target_maxcolors,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner12->setRange(1,256); + + // Gamma correction spinner + new FXLabel(matrix3,tr("Gamma Correction")); + FXRealSpinner* spinner13=new FXRealSpinner(matrix3,3,&target_gamma,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner13->setRange(0.0,5.0); + spinner13->setIncrement(0.1); + + // Scrollbar size spinner + new FXLabel(matrix3,tr("Scrollbar Size")); + FXSpinner* spinner14=new FXSpinner(matrix3,3,&target_barsize,FXDataTarget::ID_VALUE,FRAME_SUNKEN|FRAME_THICK); + spinner14->setRange(5,100); + + // Close button etc. + new FXSeparator(main,SEPARATOR_GROOVE|LAYOUT_FILL_X); + FXHorizontalFrame *closebox=new FXHorizontalFrame(main,LAYOUT_BOTTOM|LAYOUT_FILL_X,0,0,0,0,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING,DEFAULT_SPACING); + vendorandapplication=new FXLabel(closebox,FXString::null,NULL,LAYOUT_FILL_X|LAYOUT_CENTER_Y|JUSTIFY_LEFT,0,0,0,0,15); + vendorandapplication->disable(); + new FXButton(closebox,tr("&Close"),NULL,this,FXTopWindow::ID_CLOSE,BUTTON_INITIAL|BUTTON_DEFAULT|LAYOUT_RIGHT|FRAME_RAISED|FRAME_THICK,0,0,0,0,20,20); + + // Tool tip + tooltip=new FXToolTip(getApp()); + + // Initial settings + theme_current.base=getApp()->getBaseColor(); + theme_current.border=getApp()->getBorderColor(); + theme_current.back=getApp()->getBackColor(); + theme_current.fore=getApp()->getForeColor(); + theme_current.selfore=getApp()->getSelforeColor(); + theme_current.selback=getApp()->getSelbackColor(); + theme_current.tipfore=getApp()->getTipforeColor(); + theme_current.tipback=getApp()->getTipbackColor(); + theme_current.menufore=getApp()->getSelMenuTextColor(); + theme_current.menuback=getApp()->getSelMenuBackColor(); + + // Timing values + typingSpeed=getApp()->getTypingSpeed()/milliseconds; + clickSpeed=getApp()->getClickSpeed()/milliseconds; + scrollSpeed=getApp()->getScrollSpeed()/milliseconds; + scrollDelay=getApp()->getScrollDelay()/milliseconds; + blinkSpeed=getApp()->getBlinkSpeed()/milliseconds; + animSpeed=getApp()->getAnimSpeed()/milliseconds; + menuPause=getApp()->getMenuPause()/milliseconds; + tooltipPause=getApp()->getToolTipPause()/milliseconds; + tooltipTime=getApp()->getToolTipTime()/milliseconds; + + // Miscellaneous + fontspec=getApp()->getNormalFont()->getFont(); + iconpath=FXIconCache::defaultIconPath; + dragDelta=getApp()->getDragDelta(); + wheelLines=getApp()->getWheelLines(); + barSize=getApp()->getScrollBarSize(); + maxcolors=125; + gamma=1.0; + + filebinding.flags=0; + + // Color data targets associations + target_base.connect(theme_current.base,this,ID_COLORS); + target_back.connect(theme_current.back,this,ID_COLORS); + target_border.connect(theme_current.border,this,ID_COLORS); + target_fore.connect(theme_current.fore,this,ID_COLORS); + target_selfore.connect(theme_current.selfore,this,ID_COLORS); + target_selback.connect(theme_current.selback,this,ID_COLORS); + target_tipfore.connect(theme_current.tipfore,this,ID_COLORS); + target_tipback.connect(theme_current.tipback,this,ID_COLORS); + target_menufore.connect(theme_current.menufore,this,ID_COLORS); + target_menuback.connect(theme_current.menuback,this,ID_COLORS); + + // Miscellaneous data target assocations + target_typingspeed.connect(typingSpeed); + target_clickspeed.connect(clickSpeed); + target_scrollspeed.connect(scrollSpeed); + target_scrolldelay.connect(scrollDelay); + target_blinkspeed.connect(blinkSpeed); + target_animspeed.connect(animSpeed); + target_menupause.connect(menuPause); + target_tooltippause.connect(tooltipPause); + target_tooltiptime.connect(tooltipTime); + target_dragdelta.connect(dragDelta); + target_wheellines.connect(wheelLines); + target_barsize.connect(barSize); + target_maxcolors.connect(maxcolors); + target_gamma.connect(gamma); + + // File data target associations + target_filebinding_description.connect(filebinding.description); + target_filebinding_command.connect(filebinding.command); + target_iconpath.connect(iconpath); + } + + +// Create window +void FXDesktopSetup::create(){ + FXMainWindow::create(); + show(PLACEMENT_SCREEN); + } + + +// Search iconpath for given name and load the icon +FXIcon *FXDesktopSetup::createIconFromName(const FXString& name) const { + FXString iconfilename=FXPath::search(iconpath,name); + if(!iconfilename.empty()){ + FXIcon *ico=FXIconSource::defaultIconSource.loadIconFile(getApp(),iconfilename); + if(ico){ + ico->blend(getApp()->getBaseColor()); + ico->create(); + return ico; + } + } + return NULL; + } + + +// Reflect icon on button +void FXDesktopSetup::setupIconButton(const FXString& name,FXint index){ + FXASSERT(0<=index && index<=4); + if(iconimage[index]){ + delete iconimage[index]; + iconbutton[index]->setIcon(NULL); + iconimage[index]=NULL; + } + iconimage[index]=createIconFromName(name); + if(iconimage[index]){ + iconbutton[index]->setIcon(iconimage[index]); + } + } + + +// Save file binding entry +void FXDesktopSetup::saveFileBinding(){ + if(!filebinding.key.empty()){ + FXString entry; + + // Command line + entry=filebinding.command; + entry+=";"; + + // Description + entry+=filebinding.description; + entry+=";"; + + // Big icon(s) + entry+=filebinding.iconfile[BIG_ICON]; + if(!filebinding.iconfile[BIG_ICON_OPEN].empty()){ + entry+=":"; + entry+=filebinding.iconfile[BIG_ICON_OPEN]; + } + entry+=";"; + + // Mini icon(s) + entry+=filebinding.iconfile[MINI_ICON]; + if(!filebinding.iconfile[MINI_ICON_OPEN].empty()){ + entry+=":"; + entry+=filebinding.iconfile[MINI_ICON_OPEN]; + } + entry+=";"; + + // Mime type + entry+=filebinding.mime; + + // Flags, if any + if(filebinding.flags){ + entry+=";"; + if(filebinding.flags&1){ + entry+="c"; + } + if(filebinding.flags&2){ + entry+="t"; + } + } + + // Write to filetypes key + desktopsettings.writeStringEntry("FILETYPES",filebinding.key.text(),entry.text()); + } + } + + +// Set command association +long FXDesktopSetup::onCmdSelectCommand(FXObject*,FXSelector,void*){ + FXString oldcommand=filebinding.command.empty() ? SUGGESTED_FOLDER : filebinding.command; + FXString newcommand=FXFileDialog::getOpenFilename(this,tr("Select Command"),oldcommand,SUGGESTED_PATTERNS); + if(!newcommand.empty()){ + filebinding.command=newcommand; + } + return 1; + } + + +// Selected (new) mimetype +long FXDesktopSetup::onCmdMimeType(FXObject*,FXSelector,void* ptr){ + FXString mime=(const FXchar*)ptr; + if(!mime.empty() && (mimetypelist->findItem(mime)==-1)){ + mimetypelist->appendItem(mime); + mimetypelist->sortItems(); + } + filebinding.mime=mime; + return 1; + } + + +// Selected file binding from list +long FXDesktopSetup::onCmdFileBinding(FXObject*,FXSelector,void* ptr){ + FXint index=(FXint)(FXival)ptr,no; + FXString association; + FXString iconname; + FXString string; + + // Save old one + saveFileBinding(); + + // New item selected + if(0<=index){ + + // Get extension + filebinding.key=filebindinglist->getItemText(index); + + // Get associated information + association=desktopsettings.readStringEntry("FILETYPES",filebinding.key.text()); + + // Get command and description names + filebinding.command=association.section(';',0); + filebinding.description=association.section(';',1); + + // Big icon closed and open + iconname=association.section(';',2); + filebinding.iconfile[BIG_ICON]=iconname.section(':',0); + filebinding.iconfile[BIG_ICON_OPEN]=iconname.section(':',1); + + // Small icon closed and open + iconname=association.section(';',3); + filebinding.iconfile[MINI_ICON]=iconname.section(':',0); + filebinding.iconfile[MINI_ICON_OPEN]=iconname.section(':',1); + + // Mime type name + filebinding.mime=association.section(';',4); + if(!filebinding.mime.empty()){ + no=mimetypelist->findItem(filebinding.mime); + mimetypelist->setCurrentItem(no); + } + else{ + no=mimetypelist->findItem(" "); // FIXME + mimetypelist->setCurrentItem(no); + } + + // Flags + string=association.section(';',5); + filebinding.flags=0; + if(string.contains("c")) filebinding.flags|=1; + if(string.contains("t")) filebinding.flags|=2; + + // Change icons + setupIconButton(filebinding.iconfile[BIG_ICON],BIG_ICON); + setupIconButton(filebinding.iconfile[BIG_ICON_OPEN],BIG_ICON_OPEN); + setupIconButton(filebinding.iconfile[MINI_ICON],MINI_ICON); + setupIconButton(filebinding.iconfile[MINI_ICON_OPEN],MINI_ICON_OPEN); + } + return 1; + } + + +// Add new file binding +long FXDesktopSetup::onCmdCreateFileBinding(FXObject*,FXSelector,void*){ + FXString result; + if(FXInputDialog::getString(result,this,tr("New File Binding"),tr("Please enter filebinding key:"),NULL)){ + if(result.empty()) return 1; + if((filebindinglist->findItem(result))>=0){ + FXMessageBox::question(this,MBOX_OK,tr("Duplicate Binding"),tr("The given key %s already exists."),result.text()); + return 1; + } + + // Save Current + saveFileBinding(); + + filebinding.key=result; + filebinding.command=FXString::null; + filebinding.description=FXString::null; + filebinding.iconfile[BIG_ICON]=FXString::null; + filebinding.iconfile[BIG_ICON_OPEN]=FXString::null; + filebinding.iconfile[MINI_ICON]=FXString::null; + filebinding.iconfile[MINI_ICON_OPEN]=FXString::null; + filebinding.mime=FXString::null; + filebinding.flags=0; + + // Save New + saveFileBinding(); + + // Add new item + FXint no=filebindinglist->appendItem(filebinding.key); + filebindinglist->setCurrentItem(no,true); + filebindinglist->sortItems(); + filebindinglist->makeItemVisible(filebindinglist->getCurrentItem()); + } + return 1; + } + + +// Remove file binding +long FXDesktopSetup::onCmdRemoveFileBinding(FXObject*,FXSelector,void*){ + if(filebinding.key.empty()) return 1; + if(FXMessageBox::question(this,MBOX_OK_CANCEL,tr("Delete Filebinding?"),tr("Are you sure you want to delete\nthe filebinding for %s"),filebinding.key.text())==MBOX_CLICKED_OK){ + desktopsettings.deleteEntry("FILETYPES",filebinding.key); + filebinding.key=FXString::null; + filebindinglist->removeItem(filebindinglist->getCurrentItem(),true); + } + return 1; + } + + +// Rename file binding +long FXDesktopSetup::onCmdRenameFileBinding(FXObject*,FXSelector,void*){ + FXint no; + FXString result=filebinding.key; + if(FXInputDialog::getString(result,this,tr("Rename File Binding"),tr("Rename File Binding"),NULL)){ + if(result==filebinding.key) return 1; + if((no=filebindinglist->findItem(result))>=0){ + if(FXMessageBox::question(this,MBOX_YES_NO,tr("Replace Binding?"),tr("Would you like to replace the existing binding?"))!=MBOX_CLICKED_YES){ + return 1; + } + } + + // Remove old key + desktopsettings.deleteEntry("FILETYPES",filebinding.key); + filebinding.key=result; + saveFileBinding(); + if(no>=0){ + FXint previtem=filebindinglist->getCurrentItem(); + filebindinglist->setCurrentItem(no,true); + filebindinglist->removeItem(previtem); + } + else { + filebindinglist->setItemText(filebindinglist->getCurrentItem(),filebinding.key); + } + } + return 1; + } + + +// Select new icon +long FXDesktopSetup::onCmdSelectIcon(FXObject*,FXSelector sel,void*){ + FXFileDialog opendialog(this,tr("Select Icon")); + FXint index=FXSELID(sel)-ID_SELECT_ICON_BIG; + FXString iconfilename=FXPath::search(iconpath,filebinding.iconfile[index]); + opendialog.setSelectMode(SELECTFILE_EXISTING); + opendialog.showImages(true); + if(iconfilename.empty()) iconfilename=FXPath::search(iconpath,"."); + opendialog.setFilename(iconfilename); + if(opendialog.execute()){ + iconfilename=opendialog.getFilename(); + filebinding.iconfile[index]=FXPath::relativize(iconpath,iconfilename); + setupIconButton(filebinding.iconfile[index],index); + } + return 1; + } + + +// Run in terminal update +long FXDesktopSetup::onUpdRunInTerminal(FXObject* sender,FXSelector,void*){ + sender->handle(this,(filebinding.flags&2) ? FXSEL(SEL_COMMAND,ID_CHECK) : FXSEL(SEL_COMMAND,ID_UNCHECK),NULL); + return 1; + } + + +// Run in terminal +long FXDesktopSetup::onCmdRunInTerminal(FXObject*,FXSelector,void*){ + filebinding.flags^=2; + return 1; + } + + +// Change directory update +long FXDesktopSetup::onUpdChangeDirectory(FXObject* sender,FXSelector,void*){ + sender->handle(this,(filebinding.flags&1) ? FXSEL(SEL_COMMAND,ID_CHECK) : FXSEL(SEL_COMMAND,ID_UNCHECK),NULL); + return 1; + } + + +// Change directory +long FXDesktopSetup::onCmdChangeDirectory(FXObject*,FXSelector,void*){ + filebinding.flags^=1; + return 1; + } + + +// Change font +long FXDesktopSetup::onChooseFont(FXObject*,FXSelector,void*){ + FXFontDialog dialog(this,tr("Select Normal Font")); + dialog.setFont(fontspec); + if(dialog.execute(PLACEMENT_SCREEN)){ + fontspec=dialog.getFont(); + setupFont(); + } + return 1; + } + +/*******************************************************************************/ + +// Changed color, update sampler display +long FXDesktopSetup::onColorChanged(FXObject*,FXSelector,void*){ + list->setCurrentItem(list->getNumItems()-1); + setupColors(); + return 1; + } + + +// Picked new theme +long FXDesktopSetup::onColorTheme(FXObject*,FXSelector,void* ptr){ + ColorTheme *theme_selected=reinterpret_cast(list->getItemData((FXint)(FXival)ptr)); + if(theme_selected){ + theme_current.base = theme_selected->base; + theme_current.border = theme_selected->border; + theme_current.back = theme_selected->back; + theme_current.fore = theme_selected->fore; + theme_current.selfore = theme_selected->selfore; + theme_current.selback = theme_selected->selback; + theme_current.tipfore = theme_selected->tipfore; + theme_current.tipback = theme_selected->tipback; + theme_current.menufore = theme_selected->menufore; + theme_current.menuback = theme_selected->menuback; + setupColors(); + } + return 1; + } + +/*******************************************************************************/ + + +// Update dialog according to new font +void FXDesktopSetup::setupFont(){ + FXFont *oldfont=font; + font=new FXFont(getApp(),fontspec); + font->create(); + delete oldfont; + tabitem->setFont(font); + label1->setFont(font); + label2->setFont(font); + label3->setFont(font); + label4->setFont(font); + label5->setFont(font); + menulabels[0]->setFont(font); + menulabels[1]->setFont(font); + menulabels[2]->setFont(font); + menulabels[3]->setFont(font); + menulabels[4]->setFont(font); + menulabels[5]->setFont(font); + textfield1->setFont(font); + fontbutton->setText(fontspec); + } + + +// Update controls of file bindings +void FXDesktopSetup::setupFileBindings(){ + const FXStringDictionary& section=getApp()->reg().at("FILETYPES"); + FXString mime; + FXint entry; + filebindinglist->clearItems(); + mimetypelist->clearItems(); + for(entry=0; entryappendItem(section.key(entry),NULL,NULL,true); + mime=section.data(entry).section(';',4); + if(!mime.empty() && (mimetypelist->findItem(mime)==-1)){ + mimetypelist->appendItem(mime); + } + } + filebindinglist->sortItems(); + mimetypelist->sortItems(); + } + + +// Initialize colors +void FXDesktopSetup::initColors(){ + FXint i,scheme=-1; + + // Find the correct current scheme + for(i=0; iclearItems(); + + // Add Standard Themes to List + for(i=0; iappendItem(tr(ColorThemes[i].name),NULL,(void*)&ColorThemes[i]); + } + + // Custom colors were used + if(scheme==-1){ + theme_user.base=theme_current.base; + theme_user.border=theme_current.border; + theme_user.back=theme_current.back; + theme_user.fore=theme_current.fore; + theme_user.selfore=theme_current.selfore; + theme_user.selback=theme_current.selback; + theme_user.menufore=theme_current.menufore; + theme_user.menuback=theme_current.menuback; + theme_user.tipfore=theme_current.tipfore; + theme_user.tipback=theme_current.tipback; + scheme=list->getNumItems(); + list->appendItem(tr("Current"),NULL,&theme_user); + } + + // User defined theme + list->appendItem(tr("User Defined")); + list->setCurrentItem(scheme); + } + + +// Update sampler +void FXDesktopSetup::setupColors(){ + FXColor shadow=makeShadowColor(theme_current.base); + FXColor hilite=makeHiliteColor(theme_current.base); + + tabitem->setBorderColor(theme_current.border); + tabitem->setBaseColor(theme_current.base); + tabitem->setBackColor(theme_current.base); + tabitem->setTextColor(theme_current.fore); + tabitem->setShadowColor(shadow); + tabitem->setHiliteColor(hilite); + + tabframe->setBorderColor(theme_current.border); + tabframe->setBaseColor(theme_current.base); + tabframe->setBackColor(theme_current.base); + tabframe->setShadowColor(shadow); + tabframe->setHiliteColor(hilite); + + + tabsubframe->setBorderColor(theme_current.border); + tabsubframe->setBaseColor(theme_current.base); + tabsubframe->setBackColor(theme_current.base); + tabsubframe->setShadowColor(shadow); + tabsubframe->setHiliteColor(hilite); + + menuframe->setBorderColor(theme_current.border); + menuframe->setBaseColor(theme_current.base); + menuframe->setBackColor(theme_current.base); + menuframe->setShadowColor(shadow); + menuframe->setHiliteColor(hilite); + + grpbox1->setBorderColor(theme_current.border); + grpbox1->setBaseColor(theme_current.base); + grpbox1->setBackColor(theme_current.base); + grpbox1->setShadowColor(shadow); + grpbox1->setHiliteColor(hilite); + grpbox1->setTextColor(theme_current.fore); + + grpbox2->setBorderColor(theme_current.border); + grpbox2->setBaseColor(theme_current.base); + grpbox2->setBackColor(theme_current.base); + grpbox2->setShadowColor(shadow); + grpbox2->setHiliteColor(hilite); + grpbox2->setTextColor(theme_current.fore); + + sep1->setBorderColor(theme_current.border); + sep1->setBaseColor(theme_current.base); + sep1->setBackColor(theme_current.base); + sep1->setShadowColor(shadow); + sep1->setHiliteColor(hilite); + + sep2->setBorderColor(theme_current.border); + sep2->setBaseColor(theme_current.base); + sep2->setBackColor(theme_current.base); + sep2->setShadowColor(shadow); + sep2->setHiliteColor(hilite); + + sep3->setBorderColor(theme_current.border); + sep3->setBaseColor(theme_current.base); + sep3->setBackColor(theme_current.base); + sep3->setShadowColor(shadow); + sep3->setHiliteColor(hilite); + + labeltextframe1->setBorderColor(theme_current.border); + labeltextframe1->setBaseColor(theme_current.base); + labeltextframe1->setBackColor(theme_current.base); + labeltextframe1->setShadowColor(shadow); + labeltextframe1->setHiliteColor(hilite); + + + labeltextframe2->setBorderColor(theme_current.border); + labeltextframe2->setBaseColor(theme_current.base); + labeltextframe2->setBackColor(theme_current.base); + labeltextframe2->setShadowColor(shadow); + labeltextframe2->setHiliteColor(hilite); + + label1->setBorderColor(theme_current.border); + label1->setBaseColor(theme_current.base); + label1->setBackColor(theme_current.base); + label1->setTextColor(theme_current.fore); + label1->setShadowColor(shadow); + label1->setHiliteColor(hilite); + + label2->setBorderColor(theme_current.tipfore); + label2->setBaseColor(theme_current.tipback); + label2->setBackColor(theme_current.tipback); + label2->setTextColor(theme_current.tipfore); + label2->setShadowColor(shadow); + label2->setHiliteColor(hilite); + + label3->setBorderColor(theme_current.border); + label3->setBaseColor(theme_current.base); + label3->setBackColor(theme_current.selback); + label3->setTextColor(theme_current.selfore); + label3->setShadowColor(shadow); + label3->setHiliteColor(hilite); + + label4->setBorderColor(theme_current.border); + label4->setBaseColor(theme_current.base); + label4->setBackColor(theme_current.base); + label4->setTextColor(theme_current.fore); + label4->setShadowColor(shadow); + label4->setHiliteColor(hilite); + + label5->setBorderColor(theme_current.tipfore); + label5->setBaseColor(theme_current.tipback); + label5->setBackColor(theme_current.tipback); + label5->setTextColor(theme_current.tipfore); + label5->setShadowColor(shadow); + label5->setHiliteColor(hilite); + + for(FXint i=0; i<6; i++){ + menulabels[i]->setBorderColor(theme_current.border); + menulabels[i]->setBaseColor(theme_current.base); + menulabels[i]->setBackColor(theme_current.base); + menulabels[i]->setTextColor(theme_current.fore); + menulabels[i]->setShadowColor(shadow); + menulabels[i]->setHiliteColor(hilite); + } + + menulabels[4]->setBorderColor(theme_current.border); + menulabels[4]->setBaseColor(theme_current.menuback); + menulabels[4]->setBackColor(theme_current.menuback); + menulabels[4]->setTextColor(theme_current.menufore); + menulabels[4]->setShadowColor(shadow); + menulabels[4]->setHiliteColor(hilite); + + textframe1->setBorderColor(theme_current.border); + textframe1->setBaseColor(theme_current.base); + textframe1->setBackColor(theme_current.back); + textframe1->setShadowColor(shadow); + textframe1->setHiliteColor(hilite); + + textframe2->setBorderColor(theme_current.border); + textframe2->setBaseColor(theme_current.base); + textframe2->setBackColor(theme_current.back); + textframe2->setShadowColor(shadow); + textframe2->setHiliteColor(hilite); + + textfield1->setBorderColor(theme_current.border); + textfield1->setBackColor(theme_current.back); + textfield1->setBaseColor(theme_current.base); + textfield1->setTextColor(theme_current.fore); + textfield1->setSelTextColor(theme_current.selfore); + textfield1->setSelBackColor(theme_current.selback); + textfield1->setCursorColor(theme_current.fore); + textfield1->setShadowColor(shadow); + textfield1->setHiliteColor(hilite); + + tooltip->setTextColor(theme_current.tipfore); + tooltip->setBackColor(theme_current.tipback); + } + + +// Change vendor and application label +void FXDesktopSetup::setupVendorAndAppLabel(){ + FXString labelname=tr("Desktop Settings"); + if(!applicationname.empty()){ + labelname=applicationname; + if(!vendorname.empty()){ + labelname+=" [ "+vendorname+" ]"; + } + labelname+=" Settings"; + } + vendorandapplication->setText(labelname); + } + +/*******************************************************************************/ + +// Set filename from vendor and application name +FXbool FXDesktopSetup::setApplicationAndVendor(const FXString& an,const FXString& vn){ + + // Path to user config directory + FXString path=FXPath::absolute(FXPath::expand(getApp()->reg().getUserDirectory())); + + // Append path separator + path.append(PATHSEPSTRING); + + // Common settings + if(an.empty()){ + path.append(FXRegistry::foxrc); + } + + // Vendor/Application settings + else if(!vn.empty()){ + path.append(vn+PATHSEPSTRING+an+FXRegistry::ext); + } + + // Application settings + else{ + path.append(an+FXRegistry::ext); + } + + // Remember all this + setApplicationName(an); + setVendorName(vn); + setFilename(path); + setupVendorAndAppLabel(); + + readSettingsFile(path); + setupFileBindings(); + setupColors(); + initColors(); + setupFont(); + return true; + } + + +// Read settings file +FXbool FXDesktopSetup::readSettingsFile(const FXString& file){ + const FXlong milliseconds=1000000L; + + // Read file + if(desktopsettings.parseFile(file,true)){ + + // Normal font + FXString stockfontspec=getApp()->getNormalFont()->getFont(); + fontspec=desktopsettings.readStringEntry("SETTINGS","normalfont",stockfontspec.text()); + + // Color theme + theme_current.base=desktopsettings.readColorEntry("SETTINGS","basecolor",getApp()->getBaseColor()); + theme_current.border=desktopsettings.readColorEntry("SETTINGS","bordercolor",getApp()->getBorderColor()); + theme_current.back=desktopsettings.readColorEntry("SETTINGS","backcolor",getApp()->getBackColor()); + theme_current.fore=desktopsettings.readColorEntry("SETTINGS","forecolor",getApp()->getForeColor()); + //hilite=desktopsettings.readColorEntry("SETTINGS","hilitecolor",getApp()->getHiliteColor()); + //shadow=desktopsettings.readColorEntry("SETTINGS","shadowcolor",getApp()->getShadowColor()); + theme_current.selfore=desktopsettings.readColorEntry("SETTINGS","selforecolor",getApp()->getSelforeColor()); + theme_current.selback=desktopsettings.readColorEntry("SETTINGS","selbackcolor",getApp()->getSelbackColor()); + theme_current.tipfore=desktopsettings.readColorEntry("SETTINGS","tipforecolor",getApp()->getTipforeColor()); + theme_current.tipback=desktopsettings.readColorEntry("SETTINGS","tipbackcolor",getApp()->getTipbackColor()); + theme_current.menufore=desktopsettings.readColorEntry("SETTINGS","selmenutextcolor",getApp()->getSelMenuTextColor()); + theme_current.menuback=desktopsettings.readColorEntry("SETTINGS","selmenubackcolor",getApp()->getSelMenuBackColor()); + + // General Settings + typingSpeed=desktopsettings.readLongEntry("SETTINGS","typingspeed",getApp()->getTypingSpeed())/milliseconds; + clickSpeed=desktopsettings.readLongEntry("SETTINGS","clickspeed",getApp()->getClickSpeed())/milliseconds; + scrollSpeed=desktopsettings.readLongEntry("SETTINGS","scrollspeed",getApp()->getScrollSpeed())/milliseconds; + scrollDelay=desktopsettings.readLongEntry("SETTINGS","scrolldelay",getApp()->getScrollDelay())/milliseconds; + blinkSpeed=desktopsettings.readLongEntry("SETTINGS","blinkspeed",getApp()->getBlinkSpeed())/milliseconds; + animSpeed=desktopsettings.readLongEntry("SETTINGS","animspeed",getApp()->getAnimSpeed())/milliseconds; + menuPause=desktopsettings.readLongEntry("SETTINGS","menupause",getApp()->getMenuPause())/milliseconds; + tooltipPause=desktopsettings.readLongEntry("SETTINGS","tippause",getApp()->getToolTipPause())/milliseconds; + tooltipTime=desktopsettings.readLongEntry("SETTINGS","tiptime",getApp()->getToolTipTime())/milliseconds; + + // Icon search path + iconpath=desktopsettings.readStringEntry("SETTINGS","iconpath",FXIconCache::defaultIconPath); + + // Mouse tweaks + dragDelta=desktopsettings.readIntEntry("SETTINGS","dragdelta",getApp()->getDragDelta()); + wheelLines=desktopsettings.readIntEntry("SETTINGS","wheellines",getApp()->getWheelLines()); + barSize=desktopsettings.readIntEntry("SETTINGS","scrollbarsize",getApp()->getScrollBarSize()); + + // Display tweaks + maxcolors=desktopsettings.readUIntEntry("SETTINGS","maxcolors",125); + gamma=desktopsettings.readRealEntry("SETTINGS","displaygamma",1.0); + return true; + } + return false; + } + + +// Write settings file +FXbool FXDesktopSetup::writeSettingsFile(const FXString& file){ + const FXlong milliseconds=1000000L; + + // Normal font + desktopsettings.writeStringEntry("SETTINGS","normalfont",fontspec.text()); + + // Save Colors + desktopsettings.writeColorEntry("SETTINGS","basecolor",theme_current.base); + desktopsettings.writeColorEntry("SETTINGS","bordercolor",theme_current.border); + desktopsettings.writeColorEntry("SETTINGS","backcolor",theme_current.back); + desktopsettings.writeColorEntry("SETTINGS","forecolor",theme_current.fore); + desktopsettings.writeColorEntry("SETTINGS","hilitecolor",makeHiliteColor(theme_current.base)); + desktopsettings.writeColorEntry("SETTINGS","shadowcolor",makeShadowColor(theme_current.base)); + desktopsettings.writeColorEntry("SETTINGS","selforecolor",theme_current.selfore); + desktopsettings.writeColorEntry("SETTINGS","selbackcolor",theme_current.selback); + desktopsettings.writeColorEntry("SETTINGS","tipforecolor",theme_current.tipfore); + desktopsettings.writeColorEntry("SETTINGS","tipbackcolor",theme_current.tipback); + desktopsettings.writeColorEntry("SETTINGS","selmenutextcolor",theme_current.menufore); + desktopsettings.writeColorEntry("SETTINGS","selmenubackcolor",theme_current.menuback); + + // Save General Settings + desktopsettings.writeLongEntry("SETTINGS","typingspeed",typingSpeed*milliseconds); + desktopsettings.writeLongEntry("SETTINGS","clickspeed",clickSpeed*milliseconds); + desktopsettings.writeLongEntry("SETTINGS","scrollspeed",scrollSpeed*milliseconds); + desktopsettings.writeLongEntry("SETTINGS","scrolldelay",scrollDelay*milliseconds); + desktopsettings.writeLongEntry("SETTINGS","blinkspeed",blinkSpeed*milliseconds); + desktopsettings.writeLongEntry("SETTINGS","animspeed",animSpeed*milliseconds); + desktopsettings.writeLongEntry("SETTINGS","menupause",menuPause*milliseconds); + desktopsettings.writeLongEntry("SETTINGS","tippause",tooltipPause*milliseconds); + desktopsettings.writeLongEntry("SETTINGS","tiptime",tooltipTime*milliseconds); + + // Icon search path + desktopsettings.writeStringEntry("SETTINGS","iconpath",iconpath.text()); + + // Mouse tweaks + desktopsettings.writeIntEntry("SETTINGS","dragdelta",dragDelta); + desktopsettings.writeIntEntry("SETTINGS","wheellines",wheelLines); + desktopsettings.writeIntEntry("SETTINGS","scrollbarsize",barSize); + + // Display tweaks + desktopsettings.writeUIntEntry("SETTINGS","maxcolors",maxcolors); + desktopsettings.writeRealEntry("SETTINGS","displaygamma",gamma); + + // Write file + if(FXDir::createDirectories(FXPath::upLevel(file))){ + if(desktopsettings.unparseFile(file)){ + return true; + } + } + return false; + } + + +// Close main window and terminate the application +FXbool FXDesktopSetup::close(FXbool notify){ + FXint result=FXMessageBox::question(this,MBOX_SAVE_CANCEL_DONTSAVE,tr("Save Changes?"),tr("Do you want to save changes to the FOX Registry\nbefore closing?\n\nIf you don't save, your changes will be lost.")); + if(result!=MBOX_CLICKED_CANCEL){ + if(result==MBOX_CLICKED_SAVE){ + saveFileBinding(); + writeSettingsFile(filename); + } + return FXMainWindow::close(notify); + } + return false; + } + + +// Delete window +FXDesktopSetup::~FXDesktopSetup(){ + delete titlefont; + delete font; + delete desktopicon; + delete icon_colors; + delete icon_settings; + delete icon_filebinding; + delete iconimage[MINI_ICON]; + delete iconimage[BIG_ICON]; + delete iconimage[MINI_ICON_OPEN]; + delete iconimage[BIG_ICON_OPEN]; + } + +/*******************************************************************************/ + +// Start the program +int main(int argc,char **argv){ + FXString appnm,vndnm; + + // Make sure we're linked against the right library version + if(fxversion[0]!=FOX_MAJOR || fxversion[1]!=FOX_MINOR || fxversion[2]!=FOX_LEVEL){ + fxerror("FOX Library mismatch; expected version: %d.%d.%d, but found version: %d.%d.%d.\n",FOX_MAJOR,FOX_MINOR,FOX_LEVEL,fxversion[0],fxversion[1],fxversion[2]); + } + + // Make application + FXApp application("ControlPanel","FOX-DESKTOP"); + + // Open display + application.init(argc,argv); + + // Check for arguments + if(1setApplicationAndVendor(appnm,vndnm); + + // Start + return application.run(); + } diff --git a/controlpanel/ControlPanel.h b/controlpanel/ControlPanel.h new file mode 100644 index 0000000..2c39042 --- /dev/null +++ b/controlpanel/ControlPanel.h @@ -0,0 +1,247 @@ +/******************************************************************************** +* * +* FOX Desktop Setup - FOX Desktop Enviroment * +* * +********************************************************************************* +* Copyright (C) 2004,2021 Sander Jansen. All Rights Reserved. * +********************************************************************************* +* This library is free software; you can redistribute it and/or modify * +* it under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 3 of the License, or * +* (at your option) any later version. * +* * +* This library 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 Lesser General Public License for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see * +********************************************************************************/ +#ifndef CONTROLPANEL_H +#define CONTROLPANEL_H + + +// Color theme info +struct ColorTheme { + const FXchar* name; + FXColor base; + FXColor border; + FXColor back; + FXColor fore; + FXColor selback; + FXColor selfore; + FXColor tipback; + FXColor tipfore; + FXColor menuback; + FXColor menufore; + }; + + +// Up to 4 icons associated with file +enum { + BIG_ICON, + BIG_ICON_OPEN, + MINI_ICON, + MINI_ICON_OPEN + }; + + +// File binding +struct FXFileBinding { + FXString key; // Registry key + FXString description; // Description + FXString command; // Command to invoke + FXString iconfile[4]; // Icon file names + FXString mime; // Mime type + FXuint flags; // Flags + }; + + +// Control panel widget +class FXDesktopSetup : public FXMainWindow { + FXDECLARE(FXDesktopSetup) +private: + FXSettings desktopsettings; // Desktop Settings Registry + FXFont *titlefont; + FXIcon *desktopicon; + FXIcon *icon_colors; + FXIcon *icon_settings; + FXIcon *icon_filebinding; +private: + FXListBox *list; + FXList *filebindinglist; + FXComboBox *mimetypelist; + FXButton *iconbutton[4]; + FXIcon *iconimage[4]; + FXLabel *vendorandapplication; +private: + FXToolTip *tooltip; + FXTabBook *tabbook; + FXTabItem *tabitem; + FXVerticalFrame *tabframe; + FXVerticalFrame *mainframe; + FXVerticalFrame *menuframe; + FXHorizontalFrame *labeltextframe1; + FXHorizontalFrame *labeltextframe2; + FXHorizontalFrame *textframe1; + FXHorizontalFrame *textframe2; + FXHorizontalFrame *tabsubframe; + FXGroupBox *grpbox1; + FXGroupBox *grpbox2; + FXLabel *label1; + FXLabel *label2; + FXLabel *label3; + FXLabel *label4; + FXLabel *label5; + FXLabel *menulabels[6]; + FXTextField *textfield1; + FXButton *button1; + FXButton *fontbutton; + FXSeparator *sep1; + FXSeparator *sep2; + FXSeparator *sep3; +private: + ColorTheme theme_current; // Current Settings + ColorTheme theme_user; // Theme User may have set, which is different from the other themes +private: + FXFont *font; + FXbool hascurrent; + FXString fontspec; // Selected font + FXString filename; // Filename of settings file + FXString applicationname; // If editing specific application settings + FXString vendorname; // If editing specific vendor settings + FXString iconpath; // Path where icons are found + FXTime typingSpeed; + FXTime clickSpeed; + FXTime scrollSpeed; + FXTime scrollDelay; + FXTime blinkSpeed; + FXTime animSpeed; + FXTime menuPause; + FXTime tooltipPause; + FXTime tooltipTime; + FXuint maxcolors; + FXint dragDelta; + FXint wheelLines; + FXint barSize; + FXfloat gamma; + FXFileBinding filebinding; // Current file binding +private: + FXDataTarget target_base; // Color targets + FXDataTarget target_back; + FXDataTarget target_border; + FXDataTarget target_fore; + FXDataTarget target_selfore; + FXDataTarget target_selback; + FXDataTarget target_tipfore; + FXDataTarget target_tipback; + FXDataTarget target_menufore; + FXDataTarget target_menuback; + FXDataTarget target_typingspeed; // Time targets + FXDataTarget target_clickspeed; + FXDataTarget target_scrollspeed; + FXDataTarget target_scrolldelay; + FXDataTarget target_blinkspeed; + FXDataTarget target_animspeed; + FXDataTarget target_menupause; + FXDataTarget target_tooltippause; + FXDataTarget target_tooltiptime; + FXDataTarget target_dragdelta; // Move mouse delta + FXDataTarget target_wheellines; // Mouse wheel lines + FXDataTarget target_barsize; // Scroll bar size + FXDataTarget target_maxcolors; // Maximum colors + FXDataTarget target_gamma; // Display gamma value + FXDataTarget target_filebinding_description; + FXDataTarget target_filebinding_command; + FXDataTarget target_iconpath; +private: + void setupFont(); + void initColors(); + void setupColors(); + void saveFileBinding(); + void setupFileBindings(); + void setupVendorAndAppLabel(); + void setupIconButton(const FXString& name,FXint index); + FXIcon *createIconFromName(const FXString& name) const; +private: + FXDesktopSetup(){} + FXDesktopSetup(const FXDesktopSetup&); + FXDesktopSetup& operator=(const FXDesktopSetup&); +public: + enum { + ID_COLORS=FXMainWindow::ID_LAST, + ID_COLOR_THEME, + ID_CHOOSE_FONT, + ID_SELECT_COMMAND, + ID_CREATE_FILEBINDING, + ID_REMOVE_FILEBINDING, + ID_RENAME_FILEBINDING, + ID_SELECT_FILEBINDING, + ID_SELECT_ICON_BIG, + ID_SELECT_ICON_BIGOPEN, + ID_SELECT_ICON_MINI, + ID_SELECT_ICON_MINIOPEN, + ID_SELECT_MIMETYPE, + ID_RUN_IN_TERMINAL, + ID_CHANGE_DIRECTORY + }; +public: + long onColorChanged(FXObject*,FXSelector,void*); + long onColorTheme(FXObject*,FXSelector,void*); + long onChooseFont(FXObject*,FXSelector,void*); + long onCmdFileBinding(FXObject*,FXSelector,void*); + long onCmdMimeType(FXObject*,FXSelector,void*); + long onCmdCreateFileBinding(FXObject*,FXSelector,void*); + long onCmdRemoveFileBinding(FXObject*,FXSelector,void*); + long onCmdRenameFileBinding(FXObject*,FXSelector,void*); + long onCmdSelectCommand(FXObject*,FXSelector,void*); + long onCmdSelectIcon(FXObject*,FXSelector,void*); + long onUpdRunInTerminal(FXObject*,FXSelector,void*); + long onCmdRunInTerminal(FXObject*,FXSelector,void*); + long onUpdChangeDirectory(FXObject*,FXSelector,void*); + long onCmdChangeDirectory(FXObject*,FXSelector,void*); +public: + + // Constructor + FXDesktopSetup(FXApp *app); + + // Set filename + void setFilename(const FXString& file){ filename=file; } + + // Return filename + FXString getFilename() const { return filename; } + + // Change application name + void setApplicationName(const FXString& name){ applicationname=name; } + + // Return application name + const FXString& getApplicationName() const { return applicationname; } + + // Change vendor name + void setVendorName(const FXString& name){ vendorname=name; } + + // Return vendor name + const FXString& getVendorName() const { return vendorname; } + + // Set filename from vendor and application name + FXbool setApplicationAndVendor(const FXString& an,const FXString& vn=FXString::null); + + // Create widgets + virtual void create(); + + // Read settings file + FXbool readSettingsFile(const FXString& file); + + // Write settings file + FXbool writeSettingsFile(const FXString& file); + + // Close the application, return TRUE if actually closed + virtual FXbool close(FXbool notify=false); + + // Destructor + virtual ~FXDesktopSetup(); + }; + + +#endif diff --git a/controlpanel/LICENSE b/controlpanel/LICENSE new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/controlpanel/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 3 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/controlpanel/colors_gif.gif b/controlpanel/colors_gif.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b366fed0ed6527e3d5b351b36560fda69a850f3 GIT binary patch literal 777 zcmdT>OHWfl6rOwgqP?`VwX_##@nT1<74VT51!5vG(oS8tfN_D3AhN*6L`+<`(UePh z2{CXH5_}}Z7$Rd6tI^rO!UO~#EHJto7P8WfiHV6z$Ep9qFDEDGeCK>$PI6MH?a1K^ zI?%x?059Kc5`q!Jh+u*+gut>evnYg^Gs-z-j9QE$1T2OjkpY;6kqp^N5&{OX1pr}` zFw6wCI3<=83QjPWCen~&Sdvgcuq8(p6$A@e5Xt~xT(FV^1B)U?1*1%Q3Sn^ppAoLjj@?VaDW+00V`Uf-kr&7%CK;3pvMp zWjLa^^{VO`zoz-3GY`zD606-_YeYWR#OiivaR@71-kqiz@a)>1*pu8_-%t~*(i-)B zF!Loj*Kl6d6WxjZhx%Jhuimqs-!l5ML3<>b-I{CjIAT|O&-Pt>I~LJG#l=AzOzQ@@ z(YMgG;=Sj7Qkj^D&%d%a_cVqsXY&0ITh83??C4utpY>#Z8lRR^A08czlyDRsYnyJBzt41SWTTyqOUp%bWGs+8*3IjO%*hMSSgb>$9+V@YvI|FW$8DyJ5v(=IZF( Y#CP}71h7BXT7AXosbAlQR0XvB1t9|HWB>pF literal 0 HcmV?d00001 diff --git a/controlpanel/controlpanel_gif.gif b/controlpanel/controlpanel_gif.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9954d04c8fd7b6985319ee9e768d21dbf6c8ad4 GIT binary patch literal 2554 zcmc(e|5w_D9>zbP4_^di2#ClSQ(#ES7JeOZ-DZf0!qhponYmqt+(|pkoN|&8?HHgk zMI&X#j4dx>c{eidqFq|72)}Nc*VMYU+;VDV%d=}}>0Mp3OQ%2LKIi%Qc|YfQop+u@ z%zvsp1xNwD1AwiqtzUlmWn*JwWo2b~d3kMZO{>*H5Twy)mX?+l7Z>N|=4NMSXJ%&f zdj0hD^u)x(*x1;}$jHFJKp+tC`~6i_RZ?-0OjcGTm6es1358;LnMx^Ft5j8Ll}4=& zTU!-&m0qiRp_Fc?f$rm&<$u2NQcJOOXm-hj_LfWzTTb(YM`OrLLr zOeV+0F)~QaK#1&*xLAR74_?$z+PfQZkV&m#e&9uU>0%*j-(YUc0T!X6tg; zdp#bHQmK?mWqQ4-sw!MQyhnHdGn>ufa?%`*Ubolh3yh3R%=EfFT`srPYSn7=Znrxw zF3#r<1V+ZZzJPyV#O?7)rPAKsUb$TE_4+(MzuV*U`U5Vv$JOih2S&8|y0C0^N0mma zRH^L_7n{v?xmguw0xy%*|kH-sl;cz$(hl9MvM z&1F}vEc%z{d?m87wQ$^=*X>Y?g*>-IB@_yIY3!Ayv85S@->oSUb2nCI)k@*o^32-G z?DUwc*RGOD)9S*!Et)#54ETR&&+kWn{{;ZG1%N0L#p&#?M@4f^=&GGLAcVws=D+J2 zZlR>(66y3{5P+~Wip2Zo=*7e%b`gEP#{h%T$F4|@2#lBck=VNudNza*#G)#K&TLpj z%5kVkCop{48gowi=ye097?IPGr2{}=0}6%17gG&_BQ3Je)~@jXwft$H_#7(>haa|A9ZS8MppgC~)wRR8H~G)$*^+|J||o{uft`yYg^Rvyv=+A55bgLmWLO zm+T8o)<-=J5E}48Z2vqSN9?E9?@<&t)L9Prf-md9^`L}B$*zyeI~6j$6q$8*9xtLB z;RG7XSdRGhdDJWjvO|m->7IogOj2J8qov?R={GGRe5$ExS9US@%GOt?qXLeK>DQ)kBMf|v6$R(Ga?j9xwH2rTAl3Jz4m_O?XZ|UIp1kmmwPr)z;i&t|= z2Py$ErTjyruu|EYjjR=SEG&bh7ux$S(<~LAzn437TtqrdYKLRi9W_Yw>HTeH>Y4q9 zdTQm3Zu5?W48jj!^b4zIZ;K;$t}a59jrfQ%SOa||8DdcZ`Kb+A0y&&|2-vEqxX z1<{g>?tlFA_(AaY$1nFSDi{Gh9mL0!~>%4YT~-(@9W^%qiM~LYU3vX#8fqzZI^B~AhC)jSjOTu?ya0;Dxs-B zAS85zhLa5oL6lk$fkTN1d5>))EMxDGGB-NGxLtlj=WPJyr$#TTZU%CS=2VkdIah`9SK zx-%j8#@XwmVgZCWG{l5tLHIRw^98GVzK42K#I`b874&+d#UM(16l^N>9~J+FkWa)N z298z20fYgH%bYSJiw_YGw3%Qug~3HtI7aU_rdU91MLu(TSFk?T>8#(?HWY~np#ao& zI+V};n_MTP%lI}T3l@EPcqoY9=Pfh}FRSjUA zu;hYy61nXSRoQCm$(s;0X;la*Wq2d0n}B#I$%Z>WL(w42&+yjM;EzE3CX=dr6G5XD zqj!s(pl0^lCK*!mrGqPA7l(uhDu{SnIQ+!uDCAOWH7@$OY%Dvb_;+ShX b0X!~f=%juyfP8W7V#LAM`lNrN1N;65Hy8I! literal 0 HcmV?d00001 diff --git a/controlpanel/filebinding_gif.gif b/controlpanel/filebinding_gif.gif new file mode 100644 index 0000000000000000000000000000000000000000..c6866e094d82b018679a42f1df8d25b212769121 GIT binary patch literal 326 zcmZ?wbh9u|RA5kGc+9}C>A)QZ28Ou{UZ1$W@c*3^?JWoXuZZZXS<+a)q@nphLqh{l z78&S(I3T?YEWZU>JXbGOc)hk+;(NP3RyPkBWy*hPhz2up#wasD^1ZI5t z>CwcHn5k*OZSD7dMu^lDpDyEFGjAn@_@ZcJum;3s$BZdWf(^b literal 0 HcmV?d00001 diff --git a/controlpanel/settings_gif.gif b/controlpanel/settings_gif.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0542ce9545f6bebaf4255fc28f0b427788b7d06 GIT binary patch literal 1345 zcmc(e{ZrBh9LGPRDOnoDEtS9kQ&5DM9){X^U%{EF73$60%!fSd+-i!=Eh;vVhf{-7 zB%fHGk=ce1B@sTi2}&Yp4$RXYaN*L~?#lDpyvw#~^;hiu;UeemyL!2$ga7cLM8c#Fky_wL=2l9JNW(%#NJnPVevUHC>m}?d_eNojpB0X0v&2Zq9181_lxu8X77pD*F2Ro;-Q7u&^*OF@eM3Mn*=8i;H7p zW6R6S3knLly1JZBXLK}MsT2nX2gk(3#IfM3&w)%Pb2uFB4+sCT!}=Xy1c9fg=dBj( zzYf?KgB1<1DG(O{d3kxodGKZiUYX!!AH3)SqXcTc1c^j)gbUg#7^#D2*Wr(Da5RCw z40K;Zc^;5Rqy_=Jwt~4Dx=P?@3Fywihzzngpw(*q{rzt=fI$dD$p3fP*#_MXeZ(FzM4K%>!28nCKi<{H?VU{nb&^pLq9=I7^k<9+XG!FCyby8*Lm zh^B&%j}LthJh%xHjX(>0U-f@m_y_ZcF97;2xS{b$I*mz!#)ci6&|Mt`lqb84EkfMf zy)faantV5jr*{Bb03@-85*?7L;hDr{sUNe@uB+gBNxk>pN!y#AtQC1O;sOxZS~D}Ym>>FwuU@YariOeX*)1%g1%Kj!#Y`0$Px-$orGhZdSEF1Yy8jG)=-zZF0%6Q<(O}s$9Hq_bi3&b z!O~Srpz!ZS%Wjd!?*ZJfTkX=~TvkD5Qjpxn(njm&6%)KvsshNONxj+dlH*t*y4%*g@I?06sMeMKboR|I?S pM>LD*gFS?hobj7exrbPDt^tg@=sizeof(HCURSOR)); + // Building stock cursor if(options&CURSOR_STOCK){ FXTRACE((TOPIC_CREATION,"%s::create: stock cursor\n",getClassName())); @@ -228,6 +230,8 @@ void FXCursor::create(){ // Mapping to standard X11 cursors const FXuint stock[]={XC_left_ptr,XC_left_ptr,XC_right_ptr,XC_xterm,XC_watch,XC_crosshair,XC_sb_h_double_arrow,XC_sb_v_double_arrow,XC_fleur}; + FXASSERT_STATIC(sizeof(FXID)>=sizeof(Cursor)); + // Building stock cursor if(options&CURSOR_STOCK){ FXTRACE((TOPIC_CREATION,"%s::create: stock cursor\n",getClassName())); diff --git a/lib/FXDC.cpp b/lib/FXDC.cpp index 6ddcb94..5d9e834 100644 --- a/lib/FXDC.cpp +++ b/lib/FXDC.cpp @@ -3,7 +3,7 @@ * D e v i c e C o n t e x t B a s e C l a s s * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDCPrint.cpp b/lib/FXDCPrint.cpp index 0c5c88c..022783a 100644 --- a/lib/FXDCPrint.cpp +++ b/lib/FXDCPrint.cpp @@ -3,7 +3,7 @@ * D e v i c e C o n t e x t F o r P r i n t i n g * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDCWindow.cpp b/lib/FXDCWindow.cpp index 6843d6a..aad4e9f 100644 --- a/lib/FXDCWindow.cpp +++ b/lib/FXDCWindow.cpp @@ -3,7 +3,7 @@ * D e v i c e C o n t e x t F o r W i n d o w s a n d I m a g e s * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDDSIcon.cpp b/lib/FXDDSIcon.cpp index 0eb634c..cbc2596 100644 --- a/lib/FXDDSIcon.cpp +++ b/lib/FXDDSIcon.cpp @@ -3,7 +3,7 @@ * D D S I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2008,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2008,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDDSImage.cpp b/lib/FXDDSImage.cpp index 6447baf..c8cff45 100644 --- a/lib/FXDDSImage.cpp +++ b/lib/FXDDSImage.cpp @@ -3,7 +3,7 @@ * D D S I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2008,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2008,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDLL.cpp b/lib/FXDLL.cpp index 1df39d8..8db5bf2 100644 --- a/lib/FXDLL.cpp +++ b/lib/FXDLL.cpp @@ -3,7 +3,7 @@ * D y n a m i c L i n k L i b r a r y S u p p o r t * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDataTarget.cpp b/lib/FXDataTarget.cpp index 8bbd4d5..719611c 100644 --- a/lib/FXDataTarget.cpp +++ b/lib/FXDataTarget.cpp @@ -3,7 +3,7 @@ * D a t a T a r g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDate.cpp b/lib/FXDate.cpp index 0b100d3..fc875a0 100644 --- a/lib/FXDate.cpp +++ b/lib/FXDate.cpp @@ -3,7 +3,7 @@ * D a t e C l a s s * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDebugTarget.cpp b/lib/FXDebugTarget.cpp index a058c16..3644726 100644 --- a/lib/FXDebugTarget.cpp +++ b/lib/FXDebugTarget.cpp @@ -3,7 +3,7 @@ * D e b u g - T a r g e t O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDelegator.cpp b/lib/FXDelegator.cpp index 647f6f9..0528851 100644 --- a/lib/FXDelegator.cpp +++ b/lib/FXDelegator.cpp @@ -3,7 +3,7 @@ * D e l e g a t o r T a r g e t * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDial.cpp b/lib/FXDial.cpp index 40ea042..ee0f663 100644 --- a/lib/FXDial.cpp +++ b/lib/FXDial.cpp @@ -3,7 +3,7 @@ * D i a l W i d g e t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDialogBox.cpp b/lib/FXDialogBox.cpp index 205e9e8..daae932 100644 --- a/lib/FXDialogBox.cpp +++ b/lib/FXDialogBox.cpp @@ -3,7 +3,7 @@ * D i a l o g B o x O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDictionary.cpp b/lib/FXDictionary.cpp index e667439..4df1f94 100644 --- a/lib/FXDictionary.cpp +++ b/lib/FXDictionary.cpp @@ -3,7 +3,7 @@ * D i c t i o n a r y C l a s s * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDir.cpp b/lib/FXDir.cpp index ba48d3b..9ba39ac 100644 --- a/lib/FXDir.cpp +++ b/lib/FXDir.cpp @@ -3,7 +3,7 @@ * D i r e c t o r y E n u m e r a t o r * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDirBox.cpp b/lib/FXDirBox.cpp index b1a6ea8..0c2c4ae 100644 --- a/lib/FXDirBox.cpp +++ b/lib/FXDirBox.cpp @@ -3,7 +3,7 @@ * D i r e c t o r y B o x O b j e c t * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDirDialog.cpp b/lib/FXDirDialog.cpp index 0e30b95..c57202b 100644 --- a/lib/FXDirDialog.cpp +++ b/lib/FXDirDialog.cpp @@ -3,7 +3,7 @@ * D i r e c t o r y S e l e c t i o n D i a l o g * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDirList.cpp b/lib/FXDirList.cpp index 0e6b0b0..aded8e8 100644 --- a/lib/FXDirList.cpp +++ b/lib/FXDirList.cpp @@ -3,7 +3,7 @@ * D i r e c t o r y L i s t O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDirSelector.cpp b/lib/FXDirSelector.cpp index 51e978a..0b9f59f 100644 --- a/lib/FXDirSelector.cpp +++ b/lib/FXDirSelector.cpp @@ -3,7 +3,7 @@ * D i r e c t o r y S e l e c t i o n W i d g e t * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDirVisitor.cpp b/lib/FXDirVisitor.cpp index 759c494..786a6fd 100644 --- a/lib/FXDirVisitor.cpp +++ b/lib/FXDirVisitor.cpp @@ -3,7 +3,7 @@ * D i r e c t o r y V i s i t o r * * * ********************************************************************************* -* Copyright (C) 2008,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2008,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDirWatch.cpp b/lib/FXDirWatch.cpp index e0ef6b8..2392745 100644 --- a/lib/FXDirWatch.cpp +++ b/lib/FXDirWatch.cpp @@ -3,7 +3,7 @@ * W a t c h D i r e c t o r i e s f o r C h a n g e s * * * ********************************************************************************* -* Copyright (C) 2006,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2006,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDispatcher.cpp b/lib/FXDispatcher.cpp index fceecdb..635f106 100644 --- a/lib/FXDispatcher.cpp +++ b/lib/FXDispatcher.cpp @@ -3,7 +3,7 @@ * C a l l b a c k D i s p a t c h e r * * * ********************************************************************************* -* Copyright (C) 2006,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2006,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "xincs.h" #include "fxver.h" diff --git a/lib/FXDisplay.cpp b/lib/FXDisplay.cpp index b071725..33e181b 100644 --- a/lib/FXDisplay.cpp +++ b/lib/FXDisplay.cpp @@ -3,7 +3,7 @@ * D i s p l a y C l a s s * * * ********************************************************************************* -* Copyright (C) 2019,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2019,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDockBar.cpp b/lib/FXDockBar.cpp index 1538912..75cc3fc 100644 --- a/lib/FXDockBar.cpp +++ b/lib/FXDockBar.cpp @@ -3,7 +3,7 @@ * D o c k S i t e W i d g e t * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDockHandler.cpp b/lib/FXDockHandler.cpp index e88979f..12db35c 100644 --- a/lib/FXDockHandler.cpp +++ b/lib/FXDockHandler.cpp @@ -3,7 +3,7 @@ * D o c k H a n d l e r W i d g e t * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDockSite.cpp b/lib/FXDockSite.cpp index 02f95ce..fd266f9 100644 --- a/lib/FXDockSite.cpp +++ b/lib/FXDockSite.cpp @@ -3,7 +3,7 @@ * D o c k S i t e W i d g e t * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDockTitle.cpp b/lib/FXDockTitle.cpp index 8cf19be..6ad6305 100644 --- a/lib/FXDockTitle.cpp +++ b/lib/FXDockTitle.cpp @@ -3,7 +3,7 @@ * D o c k T i t l e W i d g e t * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDocument.cpp b/lib/FXDocument.cpp index 1dd06cd..3882ff9 100644 --- a/lib/FXDocument.cpp +++ b/lib/FXDocument.cpp @@ -3,7 +3,7 @@ * D o c u m e n t O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDragCorner.cpp b/lib/FXDragCorner.cpp index 149a513..d68c7f6 100644 --- a/lib/FXDragCorner.cpp +++ b/lib/FXDragCorner.cpp @@ -3,7 +3,7 @@ * D r a g C o r n e r W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDrawable.cpp b/lib/FXDrawable.cpp index 5fa09cb..b5a2c44 100644 --- a/lib/FXDrawable.cpp +++ b/lib/FXDrawable.cpp @@ -3,7 +3,7 @@ * D r a w a b l e A r e a * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXDriveBox.cpp b/lib/FXDriveBox.cpp index 8335228..71505f0 100644 --- a/lib/FXDriveBox.cpp +++ b/lib/FXDriveBox.cpp @@ -3,7 +3,7 @@ * D r i v e B o x O b j e c t * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXEXEIcon.cpp b/lib/FXEXEIcon.cpp index 9a0932e..39b0030 100644 --- a/lib/FXEXEIcon.cpp +++ b/lib/FXEXEIcon.cpp @@ -3,7 +3,7 @@ * E X E I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2014,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2014,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXEXEImage.cpp b/lib/FXEXEImage.cpp index bba44f7..f265fd3 100644 --- a/lib/FXEXEImage.cpp +++ b/lib/FXEXEImage.cpp @@ -3,7 +3,7 @@ * E X E I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2014,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2014,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXEventDispatcher.cpp b/lib/FXEventDispatcher.cpp index ec474d8..c8c54c6 100644 --- a/lib/FXEventDispatcher.cpp +++ b/lib/FXEventDispatcher.cpp @@ -3,7 +3,7 @@ * E v e n t D i s p a t c h e r * * * ********************************************************************************* -* Copyright (C) 2019,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2019,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "xincs.h" #include "fxver.h" diff --git a/lib/FXEventLoop.cpp b/lib/FXEventLoop.cpp index 3288fa0..39004b6 100644 --- a/lib/FXEventLoop.cpp +++ b/lib/FXEventLoop.cpp @@ -3,7 +3,7 @@ * F O X E v e n t L o o p * * * ********************************************************************************* -* Copyright (C) 2019,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2019,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * @@ -38,7 +38,7 @@ - Manage nested event loops. - Exceptions will unroll through event loops. - + - FIXME Active FXEventLoop is referenced by member variable FXEventDispatcher. */ diff --git a/lib/FXException.cpp b/lib/FXException.cpp index 4aab656..ae2f51f 100644 --- a/lib/FXException.cpp +++ b/lib/FXException.cpp @@ -3,7 +3,7 @@ * E x c e p t i o n T y p e s * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXExpression.cpp b/lib/FXExpression.cpp index ffcdedb..8199a82 100644 --- a/lib/FXExpression.cpp +++ b/lib/FXExpression.cpp @@ -3,7 +3,7 @@ * E x p r e s s i o n E v a l u a t o r * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXExtentd.cpp b/lib/FXExtentd.cpp index a4cac96..418ca90 100644 --- a/lib/FXExtentd.cpp +++ b/lib/FXExtentd.cpp @@ -3,7 +3,7 @@ * D o u b l e - P r e c i s i o n E x t e n t C l a s s * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXExtentf.cpp b/lib/FXExtentf.cpp index de08e2d..ba9bdd9 100644 --- a/lib/FXExtentf.cpp +++ b/lib/FXExtentf.cpp @@ -3,7 +3,7 @@ * S i n g l e - P r e c i s i o n E x t e n t C l a s s * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXFile.cpp b/lib/FXFile.cpp index d78a586..8ad1515 100644 --- a/lib/FXFile.cpp +++ b/lib/FXFile.cpp @@ -3,7 +3,7 @@ * F i l e C l a s s * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXFileAssociations.cpp b/lib/FXFileAssociations.cpp index 4cb597d..27d7324 100644 --- a/lib/FXFileAssociations.cpp +++ b/lib/FXFileAssociations.cpp @@ -3,7 +3,7 @@ * F i l e A s s o c i a t i o n s * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXFileDialog.cpp b/lib/FXFileDialog.cpp index fb65cfa..8d99f86 100644 --- a/lib/FXFileDialog.cpp +++ b/lib/FXFileDialog.cpp @@ -3,7 +3,7 @@ * F i l e S e l e c t i o n D i a l o g * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXFileList.cpp b/lib/FXFileList.cpp index afa3391..56c0915 100644 --- a/lib/FXFileList.cpp +++ b/lib/FXFileList.cpp @@ -3,7 +3,7 @@ * F i l e L i s t O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXFileProgressDialog.cpp b/lib/FXFileProgressDialog.cpp index 9035722..04a1027 100644 --- a/lib/FXFileProgressDialog.cpp +++ b/lib/FXFileProgressDialog.cpp @@ -3,7 +3,7 @@ * F i l e P r o g r e s s D i a l o g * * * ********************************************************************************* -* Copyright (C) 2016,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2016,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXFileSelector.cpp b/lib/FXFileSelector.cpp index 515ecaa..622ccc6 100644 --- a/lib/FXFileSelector.cpp +++ b/lib/FXFileSelector.cpp @@ -3,7 +3,7 @@ * F i l e S e l e c t i o n W i d g e t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * @@ -358,7 +358,7 @@ FXString FXFileSelector::decodeFilename(const FXString& string,FXint n){ FXint p=0; while(pstate)); if(isEnabled()){ + FXEvent* event=(FXEvent*)ptr; + FXTRACE((100,"%s::onSpaceBallMotion Mask=%08x\n",getClassName(),event->state)); if(target && target->tryHandle(this,FXSEL(SEL_SPACEBALLMOTION,message),ptr)) return 1; //FXTRACE((1,"values: %+3d %+3d %+3d %+3d %+3d %+3d\n",event->values[0],event->values[1],event->values[2],event->values[3],event->values[4],event->values[5])); FXQuatf q; @@ -1958,9 +1959,10 @@ long FXGLViewer::onSpaceBallMotion(FXObject*,FXSelector,void* ptr){ // Handle keyboard press/release long FXGLViewer::onKeyPress(FXObject*,FXSelector,void* ptr){ - FXEvent* event=(FXEvent*)ptr; flags&=~FLAG_TIP; if(isEnabled()){ + FXEvent* event=(FXEvent*)ptr; + FXTRACE((TOPIC_KEYBOARD,"%s::onKeyPress keysym=0x%04x state=%04x\n",getClassName(),event->code,event->state)); if(target && target->tryHandle(this,FXSEL(SEL_KEYPRESS,message),ptr)) return 1; switch(event->code){ case KEY_Shift_L: @@ -1994,8 +1996,9 @@ long FXGLViewer::onKeyPress(FXObject*,FXSelector,void* ptr){ // Key release long FXGLViewer::onKeyRelease(FXObject*,FXSelector,void* ptr){ - FXEvent* event=(FXEvent*)ptr; if(isEnabled()){ + FXEvent* event=(FXEvent*)ptr; + FXTRACE((TOPIC_KEYBOARD,"%s::onKeyRelease keysym=0x%04x state=%04x\n",getClassName(),event->code,event->state)); if(target && target->tryHandle(this,FXSEL(SEL_KEYRELEASE,message),ptr)) return 1; switch(event->code){ case KEY_Shift_L: diff --git a/lib/FXGLVisual.cpp b/lib/FXGLVisual.cpp index 449d954..916a6d9 100644 --- a/lib/FXGLVisual.cpp +++ b/lib/FXGLVisual.cpp @@ -3,7 +3,7 @@ * V i s u a l C l a s s * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXGZFileStream.cpp b/lib/FXGZFileStream.cpp index 5a8f4e8..15d98c4 100644 --- a/lib/FXGZFileStream.cpp +++ b/lib/FXGZFileStream.cpp @@ -3,7 +3,7 @@ * G Z F i l e S t r e a m C l a s s e s * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Sander Jansen. All Rights Reserved. * +* Copyright (C) 2002,2021 by Sander Jansen. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXGauge.cpp b/lib/FXGauge.cpp index ad80828..70298c3 100644 --- a/lib/FXGauge.cpp +++ b/lib/FXGauge.cpp @@ -3,7 +3,7 @@ * G a u g e W i d g e t * * * ********************************************************************************* -* Copyright (C) 2010,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2010,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXGradientBar.cpp b/lib/FXGradientBar.cpp index a59a736..b605020 100644 --- a/lib/FXGradientBar.cpp +++ b/lib/FXGradientBar.cpp @@ -3,7 +3,7 @@ * G r a d i e n t B a r W i d g e t * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXGroupBox.cpp b/lib/FXGroupBox.cpp index 64e6d27..84489da 100644 --- a/lib/FXGroupBox.cpp +++ b/lib/FXGroupBox.cpp @@ -3,7 +3,7 @@ * G r o u p B o x W i n d o w O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXHash.cpp b/lib/FXHash.cpp index 9111f53..f79629b 100644 --- a/lib/FXHash.cpp +++ b/lib/FXHash.cpp @@ -3,7 +3,7 @@ * H a s h T a b l e C l a s s * * * ********************************************************************************* -* Copyright (C) 2003,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2003,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXHeader.cpp b/lib/FXHeader.cpp index 78ff7b8..b7e2274 100644 --- a/lib/FXHeader.cpp +++ b/lib/FXHeader.cpp @@ -3,7 +3,7 @@ * H e a d e r O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXHorizontalFrame.cpp b/lib/FXHorizontalFrame.cpp index 4ebd376..22c6d35 100644 --- a/lib/FXHorizontalFrame.cpp +++ b/lib/FXHorizontalFrame.cpp @@ -3,7 +3,7 @@ * H o r i z o n t a l C o n t a i n e r O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXICOIcon.cpp b/lib/FXICOIcon.cpp index b53452f..d22d1ae 100644 --- a/lib/FXICOIcon.cpp +++ b/lib/FXICOIcon.cpp @@ -3,7 +3,7 @@ * I C O I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2001,2020 by Janusz Ganczarski. All Rights Reserved. * +* Copyright (C) 2001,2021 by Janusz Ganczarski. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXICOImage.cpp b/lib/FXICOImage.cpp index f136e1d..9433810 100644 --- a/lib/FXICOImage.cpp +++ b/lib/FXICOImage.cpp @@ -3,7 +3,7 @@ * I C O I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2001,2020 by Janusz Ganczarski. All Rights Reserved. * +* Copyright (C) 2001,2021 by Janusz Ganczarski. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXIFFIcon.cpp b/lib/FXIFFIcon.cpp index d0f4558..97f2a1b 100644 --- a/lib/FXIFFIcon.cpp +++ b/lib/FXIFFIcon.cpp @@ -3,7 +3,7 @@ * I F F I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXIFFImage.cpp b/lib/FXIFFImage.cpp index 0573af1..cb5eaa6 100644 --- a/lib/FXIFFImage.cpp +++ b/lib/FXIFFImage.cpp @@ -3,7 +3,7 @@ * I F F I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXIO.cpp b/lib/FXIO.cpp index a3a25cb..5758664 100644 --- a/lib/FXIO.cpp +++ b/lib/FXIO.cpp @@ -3,7 +3,7 @@ * A b s t r a c t I / O C l a s s * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXIOBuffer.cpp b/lib/FXIOBuffer.cpp index 60150a7..ad288b1 100644 --- a/lib/FXIOBuffer.cpp +++ b/lib/FXIOBuffer.cpp @@ -3,7 +3,7 @@ * I / O B u f f e r C l a s s * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXIODevice.cpp b/lib/FXIODevice.cpp index 5cba45c..c2711a6 100644 --- a/lib/FXIODevice.cpp +++ b/lib/FXIODevice.cpp @@ -3,7 +3,7 @@ * I / O D e v i c e C l a s s * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXIcon.cpp b/lib/FXIcon.cpp index 72a7de8..a2d656f 100644 --- a/lib/FXIcon.cpp +++ b/lib/FXIcon.cpp @@ -3,7 +3,7 @@ * I c o n - O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXIconCache.cpp b/lib/FXIconCache.cpp index 059bc28..1a96f75 100644 --- a/lib/FXIconCache.cpp +++ b/lib/FXIconCache.cpp @@ -3,7 +3,7 @@ * I c o n C a c h e * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXIconList.cpp b/lib/FXIconList.cpp index 0807f73..b669870 100644 --- a/lib/FXIconList.cpp +++ b/lib/FXIconList.cpp @@ -3,7 +3,7 @@ * I c o n L i s t O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXIconSource.cpp b/lib/FXIconSource.cpp index 4be599a..78b0214 100644 --- a/lib/FXIconSource.cpp +++ b/lib/FXIconSource.cpp @@ -3,7 +3,7 @@ * I c o n S o u r c e * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXId.cpp b/lib/FXId.cpp index 8457b53..fb472d2 100644 --- a/lib/FXId.cpp +++ b/lib/FXId.cpp @@ -3,7 +3,7 @@ * X - O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXImage.cpp b/lib/FXImage.cpp index 9d4883a..2eb4d5b 100644 --- a/lib/FXImage.cpp +++ b/lib/FXImage.cpp @@ -3,7 +3,7 @@ * I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * @@ -316,6 +316,8 @@ void FXImage::create(){ #ifdef WIN32 + FXASSERT_STATIC(sizeof(FXID)>=sizeof(HBITMAP)); + // Create a bitmap compatible with current display HDC hdc=::GetDC(GetDesktopWindow()); xid=CreateCompatibleBitmap(hdc,FXMAX(width,1),FXMAX(height,1)); @@ -323,6 +325,8 @@ void FXImage::create(){ #else + FXASSERT_STATIC(sizeof(FXID)>=sizeof(Pixmap)); + // Make pixmap xid=XCreatePixmap(DISPLAY(getApp()),XDefaultRootWindow(DISPLAY(getApp())),FXMAX(width,1),FXMAX(height,1),visual->depth); diff --git a/lib/FXImageFrame.cpp b/lib/FXImageFrame.cpp index e5287cb..4451576 100644 --- a/lib/FXImageFrame.cpp +++ b/lib/FXImageFrame.cpp @@ -3,7 +3,7 @@ * I m a g e F r a m e W i d g e t * * * ********************************************************************************* -* Copyright (C) 2001,2020 by H. J. Daniel III. All Rights Reserved. * +* Copyright (C) 2001,2021 by H. J. Daniel III. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXImageView.cpp b/lib/FXImageView.cpp index cad1501..83390eb 100644 --- a/lib/FXImageView.cpp +++ b/lib/FXImageView.cpp @@ -3,7 +3,7 @@ * I m a g e V i e w W i d g e t * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXInputDialog.cpp b/lib/FXInputDialog.cpp index b5021af..2356ae5 100644 --- a/lib/FXInputDialog.cpp +++ b/lib/FXInputDialog.cpp @@ -3,7 +3,7 @@ * I n p u t D i a l o g B o x * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXJP2Icon.cpp b/lib/FXJP2Icon.cpp index 3ac3c88..825ee69 100644 --- a/lib/FXJP2Icon.cpp +++ b/lib/FXJP2Icon.cpp @@ -3,7 +3,7 @@ * J P E G - 2 0 0 0 I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2009,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2009,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXJP2Image.cpp b/lib/FXJP2Image.cpp index 59887f1..295f545 100644 --- a/lib/FXJP2Image.cpp +++ b/lib/FXJP2Image.cpp @@ -3,7 +3,7 @@ * J P E G - 2 0 0 0 I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2009,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2009,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXJPGIcon.cpp b/lib/FXJPGIcon.cpp index ecd038b..bb95417 100644 --- a/lib/FXJPGIcon.cpp +++ b/lib/FXJPGIcon.cpp @@ -3,7 +3,7 @@ * J P E G I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2000,2020 by David Tyree. All Rights Reserved. * +* Copyright (C) 2000,2021 by David Tyree. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXJPGImage.cpp b/lib/FXJPGImage.cpp index 930cbc9..f56e42d 100644 --- a/lib/FXJPGImage.cpp +++ b/lib/FXJPGImage.cpp @@ -3,7 +3,7 @@ * J P E G I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2000,2020 by David Tyree. All Rights Reserved. * +* Copyright (C) 2000,2021 by David Tyree. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXJSON.cpp b/lib/FXJSON.cpp index 0599d7a..fccbba7 100644 --- a/lib/FXJSON.cpp +++ b/lib/FXJSON.cpp @@ -3,7 +3,7 @@ * J S O N R e a d e r & W r i t e r * * * ********************************************************************************* -* Copyright (C) 2013,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2013,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXJSONFile.cpp b/lib/FXJSONFile.cpp index 051869f..51edb46 100644 --- a/lib/FXJSONFile.cpp +++ b/lib/FXJSONFile.cpp @@ -3,7 +3,7 @@ * J S O N F i l e I / O * * * ********************************************************************************* -* Copyright (C) 2013,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2013,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXJSONString.cpp b/lib/FXJSONString.cpp index eea64fb..70674b9 100644 --- a/lib/FXJSONString.cpp +++ b/lib/FXJSONString.cpp @@ -3,7 +3,7 @@ * J S O N S t r i n g I / O * * * ********************************************************************************* -* Copyright (C) 2018,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2018,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXKnob.cpp b/lib/FXKnob.cpp index fc984b5..b9f5e70 100644 --- a/lib/FXKnob.cpp +++ b/lib/FXKnob.cpp @@ -3,7 +3,7 @@ * K n o b W i d g e t * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Leandro Nini. All Rights Reserved. * +* Copyright (C) 2005,2021 by Leandro Nini. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXLFQueue.cpp b/lib/FXLFQueue.cpp index d24186e..90429da 100644 --- a/lib/FXLFQueue.cpp +++ b/lib/FXLFQueue.cpp @@ -3,7 +3,7 @@ * L o c k - F r e e Q u e u e * * * ********************************************************************************* -* Copyright (C) 2012,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2012,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXLabel.cpp b/lib/FXLabel.cpp index 30c512a..c1d862b 100644 --- a/lib/FXLabel.cpp +++ b/lib/FXLabel.cpp @@ -3,7 +3,7 @@ * L a b e l W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXList.cpp b/lib/FXList.cpp index be85b13..4c580ae 100644 --- a/lib/FXList.cpp +++ b/lib/FXList.cpp @@ -3,7 +3,7 @@ * L i s t O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXListBox.cpp b/lib/FXListBox.cpp index 7b06906..cdb6f08 100644 --- a/lib/FXListBox.cpp +++ b/lib/FXListBox.cpp @@ -3,7 +3,7 @@ * L i s t B o x O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXLocale.cpp b/lib/FXLocale.cpp index 8db90f2..b46124a 100644 --- a/lib/FXLocale.cpp +++ b/lib/FXLocale.cpp @@ -3,7 +3,7 @@ * L o c a l e C l a s s * * * ********************************************************************************* -* Copyright (C) 2007,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2007,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMDIButton.cpp b/lib/FXMDIButton.cpp index f78539c..eae435b 100644 --- a/lib/FXMDIButton.cpp +++ b/lib/FXMDIButton.cpp @@ -3,7 +3,7 @@ * M u l t i p l e D o c u m e n t B u t t o n * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMDIChild.cpp b/lib/FXMDIChild.cpp index 6e8e699..3346618 100644 --- a/lib/FXMDIChild.cpp +++ b/lib/FXMDIChild.cpp @@ -3,7 +3,7 @@ * M u l t i p l e D o c u m e n t C h i l d W i n d o w * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMDIClient.cpp b/lib/FXMDIClient.cpp index d82e7c1..0eb98c9 100644 --- a/lib/FXMDIClient.cpp +++ b/lib/FXMDIClient.cpp @@ -3,7 +3,7 @@ * M u l t i p l e D o c u m e n t C l i e n t W i n d o w * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMainWindow.cpp b/lib/FXMainWindow.cpp index fd8b049..6ed49c1 100644 --- a/lib/FXMainWindow.cpp +++ b/lib/FXMainWindow.cpp @@ -3,7 +3,7 @@ * M a i n W i n d o w O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMat2d.cpp b/lib/FXMat2d.cpp index b4228f2..2c628f9 100644 --- a/lib/FXMat2d.cpp +++ b/lib/FXMat2d.cpp @@ -3,7 +3,7 @@ * D o u b l e - P r e c i s i o n 2 x 2 M a t r i x * * * ********************************************************************************* -* Copyright (C) 2003,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2003,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMat2f.cpp b/lib/FXMat2f.cpp index 7aa6ffa..eb622e7 100644 --- a/lib/FXMat2f.cpp +++ b/lib/FXMat2f.cpp @@ -3,7 +3,7 @@ * S i n g l e - P r e c i s i o n 2 x 2 M a t r i x * * * ********************************************************************************* -* Copyright (C) 2003,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2003,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMat3d.cpp b/lib/FXMat3d.cpp index e358296..aa4ac0e 100644 --- a/lib/FXMat3d.cpp +++ b/lib/FXMat3d.cpp @@ -3,7 +3,7 @@ * D o u b l e - P r e c i s i o n 3 x 3 M a t r i x * * * ********************************************************************************* -* Copyright (C) 2003,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2003,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMat3f.cpp b/lib/FXMat3f.cpp index fdcd997..3c8f868 100644 --- a/lib/FXMat3f.cpp +++ b/lib/FXMat3f.cpp @@ -3,7 +3,7 @@ * S i n g l e - P r e c i s i o n 3 x 3 M a t r i x * * * ********************************************************************************* -* Copyright (C) 2003,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2003,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMat4d.cpp b/lib/FXMat4d.cpp index 5398602..5f2b1c6 100644 --- a/lib/FXMat4d.cpp +++ b/lib/FXMat4d.cpp @@ -3,7 +3,7 @@ * D o u b l e - P r e c i s i o n 4 x 4 M a t r i x * * * ********************************************************************************* -* Copyright (C) 1994,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1994,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMat4f.cpp b/lib/FXMat4f.cpp index 2224e37..6bc2bfc 100644 --- a/lib/FXMat4f.cpp +++ b/lib/FXMat4f.cpp @@ -3,7 +3,7 @@ * S i n g l e - P r e c i s i o n 4 x 4 M a t r i x * * * ********************************************************************************* -* Copyright (C) 1994,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1994,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMatrix.cpp b/lib/FXMatrix.cpp index 14b51d7..2eb2e30 100644 --- a/lib/FXMatrix.cpp +++ b/lib/FXMatrix.cpp @@ -3,7 +3,7 @@ * M a t r i x C o n t a i n e r O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMemMap.cpp b/lib/FXMemMap.cpp index a5c0447..a11e642 100644 --- a/lib/FXMemMap.cpp +++ b/lib/FXMemMap.cpp @@ -3,7 +3,7 @@ * M e m o r y M a p p e d F i l e * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMemoryStream.cpp b/lib/FXMemoryStream.cpp index 5c54e9b..495a900 100644 --- a/lib/FXMemoryStream.cpp +++ b/lib/FXMemoryStream.cpp @@ -3,7 +3,7 @@ * M e m o r y S t r e a m C l a s s e s * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuBar.cpp b/lib/FXMenuBar.cpp index 9893440..18d1ea5 100644 --- a/lib/FXMenuBar.cpp +++ b/lib/FXMenuBar.cpp @@ -3,7 +3,7 @@ * M e n u B a r W i d g e t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuButton.cpp b/lib/FXMenuButton.cpp index aef94d7..799b866 100644 --- a/lib/FXMenuButton.cpp +++ b/lib/FXMenuButton.cpp @@ -3,7 +3,7 @@ * M e n u B u t t o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuCaption.cpp b/lib/FXMenuCaption.cpp index b76001d..441dd02 100644 --- a/lib/FXMenuCaption.cpp +++ b/lib/FXMenuCaption.cpp @@ -3,7 +3,7 @@ * M e n u C a p t i o n W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuCascade.cpp b/lib/FXMenuCascade.cpp index c64bc7c..57df62a 100644 --- a/lib/FXMenuCascade.cpp +++ b/lib/FXMenuCascade.cpp @@ -3,7 +3,7 @@ * M e n u C a s c a d e W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuCheck.cpp b/lib/FXMenuCheck.cpp index 6e00407..e26a510 100644 --- a/lib/FXMenuCheck.cpp +++ b/lib/FXMenuCheck.cpp @@ -3,7 +3,7 @@ * M e n u C h e c k W i d g e t * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuCommand.cpp b/lib/FXMenuCommand.cpp index 451208a..fc0908f 100644 --- a/lib/FXMenuCommand.cpp +++ b/lib/FXMenuCommand.cpp @@ -3,7 +3,7 @@ * M e n u C o m m a n d W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuPane.cpp b/lib/FXMenuPane.cpp index 6ff6a5b..93d218e 100644 --- a/lib/FXMenuPane.cpp +++ b/lib/FXMenuPane.cpp @@ -3,7 +3,7 @@ * M e n u P a n e W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuRadio.cpp b/lib/FXMenuRadio.cpp index 961a08a..3530a34 100644 --- a/lib/FXMenuRadio.cpp +++ b/lib/FXMenuRadio.cpp @@ -3,7 +3,7 @@ * M e n u R a d i o W i d g e t * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuSeparator.cpp b/lib/FXMenuSeparator.cpp index 3ab78c4..296e7e1 100644 --- a/lib/FXMenuSeparator.cpp +++ b/lib/FXMenuSeparator.cpp @@ -3,7 +3,7 @@ * M e n u S e p a r a t o r W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMenuTitle.cpp b/lib/FXMenuTitle.cpp index a877a12..b4de56a 100644 --- a/lib/FXMenuTitle.cpp +++ b/lib/FXMenuTitle.cpp @@ -3,7 +3,7 @@ * M e n u T i t l e W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMessageBox.cpp b/lib/FXMessageBox.cpp index 41107c2..ec3a8a7 100644 --- a/lib/FXMessageBox.cpp +++ b/lib/FXMessageBox.cpp @@ -3,7 +3,7 @@ * M e s s a g e B o x e s * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMessageChannel.cpp b/lib/FXMessageChannel.cpp index 3f51c75..2e981dc 100644 --- a/lib/FXMessageChannel.cpp +++ b/lib/FXMessageChannel.cpp @@ -3,7 +3,7 @@ * I n t e r - T h r e a d M e s s a g i n g C h a n n e l * * * ********************************************************************************* -* Copyright (C) 2006,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2006,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMetaClass.cpp b/lib/FXMetaClass.cpp index 65b9cd0..af708c4 100644 --- a/lib/FXMetaClass.cpp +++ b/lib/FXMetaClass.cpp @@ -3,7 +3,7 @@ * M e t a C l a s s O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXMutex.cpp b/lib/FXMutex.cpp index 6828147..88fce15 100644 --- a/lib/FXMutex.cpp +++ b/lib/FXMutex.cpp @@ -3,7 +3,7 @@ * M u t e x C l a s s * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXObject.cpp b/lib/FXObject.cpp index fcda929..61860c0 100644 --- a/lib/FXObject.cpp +++ b/lib/FXObject.cpp @@ -3,7 +3,7 @@ * T o p l e v e l O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXObjectList.cpp b/lib/FXObjectList.cpp index 286e699..89a9c60 100644 --- a/lib/FXObjectList.cpp +++ b/lib/FXObjectList.cpp @@ -3,7 +3,7 @@ * O b j e c t L i s t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXOptionMenu.cpp b/lib/FXOptionMenu.cpp index baff1d5..c3ad404 100644 --- a/lib/FXOptionMenu.cpp +++ b/lib/FXOptionMenu.cpp @@ -3,7 +3,7 @@ * O p t i o n M e n u * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPCXIcon.cpp b/lib/FXPCXIcon.cpp index c2ca07f..d560325 100644 --- a/lib/FXPCXIcon.cpp +++ b/lib/FXPCXIcon.cpp @@ -3,7 +3,7 @@ * P C X I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2001,2020 by Janusz Ganczarski. All Rights Reserved. * +* Copyright (C) 2001,2021 by Janusz Ganczarski. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPCXImage.cpp b/lib/FXPCXImage.cpp index 9efc0f6..50827b9 100644 --- a/lib/FXPCXImage.cpp +++ b/lib/FXPCXImage.cpp @@ -3,7 +3,7 @@ * P C X I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2001,2020 by Janusz Ganczarski. All Rights Reserved. * +* Copyright (C) 2001,2021 by Janusz Ganczarski. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPNGIcon.cpp b/lib/FXPNGIcon.cpp index 3e32b2b..93cd326 100644 --- a/lib/FXPNGIcon.cpp +++ b/lib/FXPNGIcon.cpp @@ -3,7 +3,7 @@ * P N G I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPNGImage.cpp b/lib/FXPNGImage.cpp index b89b379..b6b809e 100644 --- a/lib/FXPNGImage.cpp +++ b/lib/FXPNGImage.cpp @@ -3,7 +3,7 @@ * P N G I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPPMIcon.cpp b/lib/FXPPMIcon.cpp index 6051c61..66c968f 100644 --- a/lib/FXPPMIcon.cpp +++ b/lib/FXPPMIcon.cpp @@ -3,7 +3,7 @@ * P P M I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPPMImage.cpp b/lib/FXPPMImage.cpp index 71d5c6a..9b7a84a 100644 --- a/lib/FXPPMImage.cpp +++ b/lib/FXPPMImage.cpp @@ -3,7 +3,7 @@ * P P M I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPacker.cpp b/lib/FXPacker.cpp index 6f984ec..1d20ad2 100644 --- a/lib/FXPacker.cpp +++ b/lib/FXPacker.cpp @@ -3,7 +3,7 @@ * P a c k e r C o n t a i n e r O b j e c t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPath.cpp b/lib/FXPath.cpp index 7e988ad..ef3921f 100644 --- a/lib/FXPath.cpp +++ b/lib/FXPath.cpp @@ -3,7 +3,7 @@ * P a t h N a m e M a n i p u l a t i o n * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPicker.cpp b/lib/FXPicker.cpp index e506f61..6c7d1d2 100644 --- a/lib/FXPicker.cpp +++ b/lib/FXPicker.cpp @@ -3,7 +3,7 @@ * P i c k e r B u t t o n * * * ********************************************************************************* -* Copyright (C) 2001,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2001,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * @@ -49,8 +49,9 @@ widget without a preceeding SEL_LEFTBUTTONPRESS. */ -using namespace FX; +#define TOPIC_KEYBOARD 1009 +using namespace FX; /*******************************************************************************/ @@ -142,9 +143,10 @@ long FXPicker::onLeftBtnRelease(FXObject*,FXSelector,void*){ // Key Press long FXPicker::onKeyPress(FXObject*,FXSelector,void* ptr){ - FXEvent* event=(FXEvent*)ptr; flags&=~FLAG_TIP; if(isEnabled() && !(flags&FLAG_PRESSED)){ + FXEvent* event=(FXEvent*)ptr; + FXTRACE((TOPIC_KEYBOARD,"%s::onKeyPress keysym=0x%04x state=%04x\n",getClassName(),event->code,event->state)); if((event->code==KEY_space || event->code==KEY_KP_Space) || (isDefault() && (event->code==KEY_Return || event->code==KEY_KP_Enter))){ flags|=FLAG_PRESSED; if(state==STATE_UP){ @@ -165,8 +167,9 @@ long FXPicker::onKeyPress(FXObject*,FXSelector,void* ptr){ // Key Release long FXPicker::onKeyRelease(FXObject*,FXSelector,void* ptr){ - FXEvent* event=(FXEvent*)ptr; if(isEnabled() && (flags&FLAG_PRESSED)){ + FXEvent* event=(FXEvent*)ptr; + FXTRACE((TOPIC_KEYBOARD,"%s::onKeyRelease keysym=0x%04x state=%04x\n",getClassName(),event->code,event->state)); if((event->code==KEY_space || event->code==KEY_KP_Space) || (isDefault() && (event->code==KEY_Return || event->code==KEY_KP_Enter))){ flags&=~FLAG_PRESSED; if(state==STATE_DOWN && picked){ diff --git a/lib/FXPipe.cpp b/lib/FXPipe.cpp index dd6751a..4b9ba44 100644 --- a/lib/FXPipe.cpp +++ b/lib/FXPipe.cpp @@ -3,7 +3,7 @@ * P i p e C l a s s * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPoint.cpp b/lib/FXPoint.cpp index 9e7810d..7a1f848 100644 --- a/lib/FXPoint.cpp +++ b/lib/FXPoint.cpp @@ -3,7 +3,7 @@ * P o i n t C l a s s * * * ********************************************************************************* -* Copyright (C) 1994,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1994,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPopup.cpp b/lib/FXPopup.cpp index 45c7142..07645b9 100644 --- a/lib/FXPopup.cpp +++ b/lib/FXPopup.cpp @@ -3,7 +3,7 @@ * P o p u p W i n d o w O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPrintDialog.cpp b/lib/FXPrintDialog.cpp index e0fbf5b..09034ce 100644 --- a/lib/FXPrintDialog.cpp +++ b/lib/FXPrintDialog.cpp @@ -3,7 +3,7 @@ * P r i n t J o b D i a l o g * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXProcess.cpp b/lib/FXProcess.cpp index deb6772..36a5f4c 100644 --- a/lib/FXProcess.cpp +++ b/lib/FXProcess.cpp @@ -3,7 +3,7 @@ * P r o c e s s S u p p o r t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXProgressBar.cpp b/lib/FXProgressBar.cpp index 09dcb65..d6be26c 100644 --- a/lib/FXProgressBar.cpp +++ b/lib/FXProgressBar.cpp @@ -3,7 +3,7 @@ * P r o g r e s s B a r W i d g e t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXProgressDialog.cpp b/lib/FXProgressDialog.cpp index 96bf076..1c04fed 100644 --- a/lib/FXProgressDialog.cpp +++ b/lib/FXProgressDialog.cpp @@ -3,7 +3,7 @@ * P r o g r e s s D i a l o g B o x * * * ********************************************************************************* -* Copyright (C) 2001,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2001,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPtrList.cpp b/lib/FXPtrList.cpp index 2e23639..86643f2 100644 --- a/lib/FXPtrList.cpp +++ b/lib/FXPtrList.cpp @@ -3,7 +3,7 @@ * P o i n t e r L i s t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXPtrQueue.cpp b/lib/FXPtrQueue.cpp index 75e4a70..455c90a 100644 --- a/lib/FXPtrQueue.cpp +++ b/lib/FXPtrQueue.cpp @@ -3,7 +3,7 @@ * Q u e u e O f P o i n t e r s * * * ********************************************************************************* -* Copyright (C) 2006,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2006,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXQuatd.cpp b/lib/FXQuatd.cpp index bc684ff..2621526 100644 --- a/lib/FXQuatd.cpp +++ b/lib/FXQuatd.cpp @@ -3,7 +3,7 @@ * D o u b l e - P r e c i s i o n Q u a t e r n i o n * * * ********************************************************************************* -* Copyright (C) 1994,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1994,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXQuatf.cpp b/lib/FXQuatf.cpp index ca9032a..2c4fa55 100644 --- a/lib/FXQuatf.cpp +++ b/lib/FXQuatf.cpp @@ -3,7 +3,7 @@ * S i n g l e - P r e c i s i o n Q u a t e r n i o n * * * ********************************************************************************* -* Copyright (C) 1994,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1994,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRASIcon.cpp b/lib/FXRASIcon.cpp index 24de1da..5f28e84 100644 --- a/lib/FXRASIcon.cpp +++ b/lib/FXRASIcon.cpp @@ -3,7 +3,7 @@ * S U N R A S T E R I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRASImage.cpp b/lib/FXRASImage.cpp index f3235bc..f4aee0b 100644 --- a/lib/FXRASImage.cpp +++ b/lib/FXRASImage.cpp @@ -3,7 +3,7 @@ * S U N R A S T E R I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRGBIcon.cpp b/lib/FXRGBIcon.cpp index 125e086..d1ac84e 100644 --- a/lib/FXRGBIcon.cpp +++ b/lib/FXRGBIcon.cpp @@ -3,7 +3,7 @@ * I R I S R G B I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRGBImage.cpp b/lib/FXRGBImage.cpp index 374d43f..e75ac4d 100644 --- a/lib/FXRGBImage.cpp +++ b/lib/FXRGBImage.cpp @@ -3,7 +3,7 @@ * I R I S R G B I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRadioButton.cpp b/lib/FXRadioButton.cpp index 765ddc8..c4fcdb7 100644 --- a/lib/FXRadioButton.cpp +++ b/lib/FXRadioButton.cpp @@ -3,7 +3,7 @@ * R a d i o B u t t o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRandom.cpp b/lib/FXRandom.cpp index c97ea9a..14d43f3 100644 --- a/lib/FXRandom.cpp +++ b/lib/FXRandom.cpp @@ -3,7 +3,7 @@ * R a n d o m N u m b e r G e n e r a t o r * * * ********************************************************************************* -* Copyright (C) 2007,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2007,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * @@ -76,7 +76,7 @@ FXulong FXRandom::next(){ FXulong FXRandom::randLong(){ return next()*FXULONG(2685821657736338717); } - + // Get random double FXfloat FXRandom::randFloat(){ diff --git a/lib/FXRangeSlider.cpp b/lib/FXRangeSlider.cpp index 5519799..54b82ef 100644 --- a/lib/FXRangeSlider.cpp +++ b/lib/FXRangeSlider.cpp @@ -3,7 +3,7 @@ * S l i d e r W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRanged.cpp b/lib/FXRanged.cpp index c6ea7a0..2e9f22e 100644 --- a/lib/FXRanged.cpp +++ b/lib/FXRanged.cpp @@ -3,7 +3,7 @@ * D o u b l e - P r e c i s i o n R a n g e C l a s s * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRangef.cpp b/lib/FXRangef.cpp index 980b65e..887961a 100644 --- a/lib/FXRangef.cpp +++ b/lib/FXRangef.cpp @@ -3,7 +3,7 @@ * S i n g l e - P r e c i s i o n R a n g e C l a s s * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXReactor.cpp b/lib/FXReactor.cpp index 6f430a3..7649474 100644 --- a/lib/FXReactor.cpp +++ b/lib/FXReactor.cpp @@ -3,7 +3,7 @@ * R e a c t o r C l a s s * * * ********************************************************************************* -* Copyright (C) 2006,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2006,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXReactorCore.h b/lib/FXReactorCore.h index 1c121b5..dd1bf59 100644 --- a/lib/FXReactorCore.h +++ b/lib/FXReactorCore.h @@ -3,7 +3,7 @@ * R e a c t o r C o r e * * * ********************************************************************************* -* Copyright (C) 2019,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2019,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXReadWriteLock.cpp b/lib/FXReadWriteLock.cpp index f54e04c..900848c 100644 --- a/lib/FXReadWriteLock.cpp +++ b/lib/FXReadWriteLock.cpp @@ -3,7 +3,7 @@ * R e a d - W r i t e L o c k C l a s s * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRealSlider.cpp b/lib/FXRealSlider.cpp index 0b4ad9f..81f1049 100644 --- a/lib/FXRealSlider.cpp +++ b/lib/FXRealSlider.cpp @@ -3,7 +3,7 @@ * R e a l S l i d e r W i d g e t * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRealSpinner.cpp b/lib/FXRealSpinner.cpp index 5003be1..1dd08d6 100644 --- a/lib/FXRealSpinner.cpp +++ b/lib/FXRealSpinner.cpp @@ -3,7 +3,7 @@ * R e a l - V a l u e d S p i n n e r W i d g e t * * * ********************************************************************************* -* Copyright (C) 2003,2020 by Bill Baxter. All Rights Reserved. * +* Copyright (C) 2003,2021 by Bill Baxter. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRecentFiles.cpp b/lib/FXRecentFiles.cpp index d4bb96e..2061f01 100644 --- a/lib/FXRecentFiles.cpp +++ b/lib/FXRecentFiles.cpp @@ -3,7 +3,7 @@ * R e c e n t F i l e s L i s t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRectangle.cpp b/lib/FXRectangle.cpp index 85cd1ef..c9a1900 100644 --- a/lib/FXRectangle.cpp +++ b/lib/FXRectangle.cpp @@ -3,7 +3,7 @@ * R e c t a n g l e C l a s s * * * ********************************************************************************* -* Copyright (C) 1994,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1994,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRegion.cpp b/lib/FXRegion.cpp index 3125531..a537653 100644 --- a/lib/FXRegion.cpp +++ b/lib/FXRegion.cpp @@ -3,7 +3,7 @@ * C l i p p i n g R e g i o n * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRegistry.cpp b/lib/FXRegistry.cpp index 2e1b571..75d15b0 100644 --- a/lib/FXRegistry.cpp +++ b/lib/FXRegistry.cpp @@ -3,7 +3,7 @@ * R e g i s t r y C l a s s * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXReplaceDialog.cpp b/lib/FXReplaceDialog.cpp index d74e3ae..6e53965 100644 --- a/lib/FXReplaceDialog.cpp +++ b/lib/FXReplaceDialog.cpp @@ -3,7 +3,7 @@ * T e x t R e p l a c e D i a l o g * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXReverseDictionary.cpp b/lib/FXReverseDictionary.cpp index 73c2d68..cd05590 100644 --- a/lib/FXReverseDictionary.cpp +++ b/lib/FXReverseDictionary.cpp @@ -3,7 +3,7 @@ * R e v e r s e D i c t i o n a r y C l a s s * * * ********************************************************************************* -* Copyright (C) 2018,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2018,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXRex.cpp b/lib/FXRex.cpp index ff481cc..2d7a1e4 100644 --- a/lib/FXRex.cpp +++ b/lib/FXRex.cpp @@ -3,7 +3,7 @@ * R e g u l a r E x p r e s s i o n C l a s s * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * @@ -1119,7 +1119,7 @@ FXRex::Error FXCompile::compile(FXuchar *prog,FXchar* p,FXint m){ FXshort smax=0; FXuchar* at; - FXASSERT(OP_LAST<=256); + FXASSERT_STATIC(OP_LAST<=256); // Initialize parser data code=pc=at=prog; @@ -1203,7 +1203,7 @@ FXRex::Error FXCompile::expression(FXshort& flags,FXshort& smin,FXshort& smax){ // Update flags for expression thus far if(!(flg&FLG_WIDTH)) flags&=~FLG_WIDTH; - + // Update size range if(smx>smax) smax=smx; if(smn=end)) break; if(__unlikely(!FXISFOLLOWUTF8(src[2]))) break; if(0xF0<=c){ - if(__unlikely(src+3>=end)) break; + if(__unlikely(src+3>=end)) break; if(__unlikely(!FXISFOLLOWUTF8(src[3]))) break; src++; p++; @@ -878,7 +878,7 @@ FXString::FXString():str(EMPTY){ // Construct copy of another string FXString::FXString(const FXString& s):str(EMPTY){ - if(length(s.length())){ + if(__likely(length(s.length()))){ memcpy(str,s.text(),s.length()); } } @@ -887,7 +887,7 @@ FXString::FXString(const FXString& s):str(EMPTY){ // Construct and initialize with string s FXString::FXString(const FXchar* s):str(EMPTY){ FXint n; - if(s && s[0] && length((n=strlen(s)))){ + if(__likely(s && s[0] && length((n=strlen(s))))){ memcpy(str,s,n); } } @@ -896,7 +896,7 @@ FXString::FXString(const FXchar* s):str(EMPTY){ // Construct and init from narrow character string FXString::FXString(const FXnchar* s):str(EMPTY){ FXint m; - if(s && s[0] && length((m=ncs2utf(s)))){ + if(__likely(s && s[0] && length((m=ncs2utf(s))))){ ncs2utf(str,s,m); } } @@ -905,7 +905,7 @@ FXString::FXString(const FXnchar* s):str(EMPTY){ // Construct and init from wide character string FXString::FXString(const FXwchar* s):str(EMPTY){ FXint m; - if(s && s[0] && length((m=wcs2utf(s)))){ + if(__likely(s && s[0] && length((m=wcs2utf(s))))){ wcs2utf(str,s,m); } } @@ -913,7 +913,7 @@ FXString::FXString(const FXwchar* s):str(EMPTY){ // Construct and init with substring FXString::FXString(const FXchar* s,FXint n):str(EMPTY){ - if(s && 0n){ - memmove(str+pos+n,str+pos+r,len-pos-r); - if(!length(len+n-r)) return *this; + if(__likely(0<=pos && 0<=r && pos+r<=len)){ + if(rn){ + memmove(str+pos+n,str+pos+r,len-pos-r); + if(!length(len+n-r)) return *this; + } + memset(str+pos,c,n); } - memset(str+pos,c,n); return *this; } // Replace the r characters at pos with string s FXString& FXString::replace(FXint pos,FXint r,const FXchar* s){ - replace(pos,r,s,strlen(s)); + return replace(pos,r,s,strlen(s)); } @@ -1593,15 +1596,17 @@ FXString& FXString::replace(FXint pos,FXint r,const FXwchar* s){ // Replaces the r characters at pos with first n characters of string s FXString& FXString::replace(FXint pos,FXint r,const FXchar* s,FXint n){ FXint len=length(); - if(rn){ - memmove(str+pos+n,str+pos+r,len-pos-r); - if(!length(len+n-r)) return *this; + if(__likely(0<=pos && 0<=r && pos+r<=len)){ + if(rn){ + memmove(str+pos+n,str+pos+r,len-pos-r); + if(!length(len+n-r)) return *this; + } + memcpy(str+pos,s,n); } - memcpy(str+pos,s,n); return *this; } @@ -1609,15 +1614,17 @@ FXString& FXString::replace(FXint pos,FXint r,const FXchar* s,FXint n){ // Replaces the r characters at pos with first n characters of narrow character string s FXString& FXString::replace(FXint pos,FXint r,const FXnchar* s,FXint n){ FXint len=length(),m=ncs2utf(s,n); - if(rm){ - memmove(str+pos+m,str+pos+r,len-pos-r); - if(!length(len+m-r)) return *this; + if(__likely(0<=pos && 0<=r && pos+r<=len)){ + if(rm){ + memmove(str+pos+m,str+pos+r,len-pos-r); + if(!length(len+m-r)) return *this; + } + ncs2utf(str+pos,s,m,n); } - ncs2utf(str+pos,s,m,n); return *this; } @@ -1625,15 +1632,17 @@ FXString& FXString::replace(FXint pos,FXint r,const FXnchar* s,FXint n){ // Replaces the r characters at pos with first n characters of wide character string s FXString& FXString::replace(FXint pos,FXint r,const FXwchar* s,FXint n){ FXint len=length(),m=wcs2utf(s,n); - if(rm){ - memmove(str+pos+m,str+pos+r,len-pos-r); - if(!length(len+m-r)) return *this; + if(__likely(0<=pos && 0<=r && pos+r<=len)){ + if(rm){ + memmove(str+pos+m,str+pos+r,len-pos-r); + if(!length(len+m-r)) return *this; + } + wcs2utf(str+pos,s,m,n); } - wcs2utf(str+pos,s,m,n); return *this; } @@ -1763,12 +1772,14 @@ FXString& FXString::substitute(FXchar org,FXchar sub,FXbool all){ // Substitute one string by another FXString& FXString::substitute(const FXchar* org,FXint olen,const FXchar* rep,FXint rlen,FXbool all){ - if(0select.endcol) && (select.startposbeep(); - return 1; - } -#endif - -// Insert a string +// Insert a string as if typed long FXText::onCmdInsertString(FXObject*,FXSelector,void* ptr){ if(isEditable()){ FXchar* txt=(FXchar*)ptr; FXint len=strlen(txt); FXint beg=cursorpos; FXint end=cursorpos; - FXint cols,ins; + FXint rows,cols,ins; + FXString rep; // Position is selected if(isPosSelected(cursorpos,cursorvcol)){ @@ -5644,10 +5615,17 @@ long FXText::onCmdInsertString(FXObject*,FXSelector,void* ptr){ // Block selection if(select.startcol=select.endcol){ + start=lineStart(select.startpos); + string="\n"+extractText(start,select.startpos-start); + n=string.find_first_not_of(" \t\v\n"); + if(0<=n) string.trunc(n); + } + } + else{ + start=lineStart(cursorpos); + string="\n"+extractText(start,cursorpos-start); + n=string.find_first_not_of(" \t\v\n"); + if(0<=n) string.trunc(n); + } + return onCmdInsertString(this,FXSEL(SEL_COMMAND,ID_INSERT_STRING),(void*)string.text()); } // Insert optional soft-tab long FXText::onCmdInsertTab(FXObject*,FXSelector,void*){ - return handle(this,(options&TEXT_NO_TABS)?FXSEL(SEL_COMMAND,ID_INSERT_SOFTTAB):FXSEL(SEL_COMMAND,ID_INSERT_HARDTAB),NULL); + if(options&TEXT_NO_TABS){ + return onCmdInsertSoftTab(this,FXSEL(SEL_COMMAND,ID_INSERT_SOFTTAB),NULL); + } + return onCmdInsertHardTab(this,FXSEL(SEL_COMMAND,ID_INSERT_HARDTAB),NULL); } // Insert hard-tab long FXText::onCmdInsertHardTab(FXObject*,FXSelector,void*){ - return handle(this,FXSEL(SEL_COMMAND,ID_INSERT_STRING),(void*)"\t"); + return onCmdInsertString(this,FXSEL(SEL_COMMAND,ID_INSERT_STRING),(void*)"\t"); } // Insert soft-tab +// The number of spaces to insert depends on the indentation level. +// No selection: use indent at the cursor insert-position +// Range-selection: use indent at the start of the selection +// Block-selection: use the start column of the selection long FXText::onCmdInsertSoftTab(FXObject*,FXSelector,void*){ - FXint pos=isPosSelected(cursorpos) ? select.startpos : cursorpos; - FXint indent=columnFromPos(lineStart(pos),pos); + FXint indent; + if(isPosSelected(cursorpos,cursorvcol)){ + if(select.startcolid(); } + FXASSERT_STATIC(sizeof(FXID)>=sizeof(HWND)); + // Create this window xid=CreateWindowEx(dwExStyle,(TCHAR*)GetClass(),NULL,dwStyle,xpos,ypos,FXMAX(width,1),FXMAX(height,1),hParent,NULL,(HINSTANCE)getApp()->getDisplay(),this); @@ -1375,6 +1377,8 @@ void FXWindow::create(){ mask|=CWCursor; } + FXASSERT_STATIC(sizeof(FXID)>=sizeof(Window)); + // Finally, create the window xid=XCreateWindow((Display*)getApp()->getDisplay(),parent->id(),xpos,ypos,FXMAX(width,1),FXMAX(height,1),0,visual->depth,InputOutput,(Visual*)visual->visual,mask,&wattr); diff --git a/lib/FXWizard.cpp b/lib/FXWizard.cpp index 3ae36a7..0b1dda1 100644 --- a/lib/FXWizard.cpp +++ b/lib/FXWizard.cpp @@ -3,7 +3,7 @@ * W i z a r d W i d g e t * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXWorker.cpp b/lib/FXWorker.cpp index 25c85ed..b391125 100644 --- a/lib/FXWorker.cpp +++ b/lib/FXWorker.cpp @@ -3,7 +3,7 @@ * W o r k e r T h r e a d * * * ********************************************************************************* -* Copyright (C) 2006,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2006,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXXBMIcon.cpp b/lib/FXXBMIcon.cpp index 4a42554..90c9acc 100644 --- a/lib/FXXBMIcon.cpp +++ b/lib/FXXBMIcon.cpp @@ -3,7 +3,7 @@ * X B M I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2003,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2003,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXXBMImage.cpp b/lib/FXXBMImage.cpp index e218b64..49f2f66 100644 --- a/lib/FXXBMImage.cpp +++ b/lib/FXXBMImage.cpp @@ -3,7 +3,7 @@ * X B M I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2003,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2003,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXXML.cpp b/lib/FXXML.cpp index 8b76020..a518f47 100644 --- a/lib/FXXML.cpp +++ b/lib/FXXML.cpp @@ -3,7 +3,7 @@ * X M L R e a d e r & W r i t e r * * * ********************************************************************************* -* Copyright (C) 2016,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2016,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXXMLFile.cpp b/lib/FXXMLFile.cpp index 43eb488..8e25724 100644 --- a/lib/FXXMLFile.cpp +++ b/lib/FXXMLFile.cpp @@ -3,7 +3,7 @@ * X M L - F i l e I / O * * * ********************************************************************************* -* Copyright (C) 2016,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2016,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXXMLString.cpp b/lib/FXXMLString.cpp index fa5dc80..8f836cd 100644 --- a/lib/FXXMLString.cpp +++ b/lib/FXXMLString.cpp @@ -3,7 +3,7 @@ * X M L S t r i n g I / O * * * ********************************************************************************* -* Copyright (C) 2016,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2016,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "xincs.h" #include "fxver.h" diff --git a/lib/FXXPMIcon.cpp b/lib/FXXPMIcon.cpp index bcee97d..57a2001 100644 --- a/lib/FXXPMIcon.cpp +++ b/lib/FXXPMIcon.cpp @@ -3,7 +3,7 @@ * X P M I c o n O b j e c t * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXXPMImage.cpp b/lib/FXXPMImage.cpp index 9259aec..be731ee 100644 --- a/lib/FXXPMImage.cpp +++ b/lib/FXXPMImage.cpp @@ -3,7 +3,7 @@ * X P M I m a g e O b j e c t * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/FXhalf.cpp b/lib/FXhalf.cpp index 2a748ee..b5435b8 100644 --- a/lib/FXhalf.cpp +++ b/lib/FXhalf.cpp @@ -3,7 +3,7 @@ * H a l f - F l o a t S u p p o r t * * * ********************************************************************************* -* Copyright (C) 2008,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2008,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxascii.cpp b/lib/fxascii.cpp index febc5e7..04cb412 100644 --- a/lib/fxascii.cpp +++ b/lib/fxascii.cpp @@ -3,7 +3,7 @@ * A S C I I C h a r a c t e r I n f o * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxbase64.cpp b/lib/fxbase64.cpp index cb69c78..64fd4ab 100644 --- a/lib/fxbase64.cpp +++ b/lib/fxbase64.cpp @@ -3,7 +3,7 @@ * B a s e - 6 4 E n c o d i n g / D e c o d i n g * * * ********************************************************************************* -* Copyright (C) 2012,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2012,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxbase85.cpp b/lib/fxbase85.cpp index c593b6f..75dbd58 100644 --- a/lib/fxbase85.cpp +++ b/lib/fxbase85.cpp @@ -3,7 +3,7 @@ * B a s e - 8 5 E n c o d i n g / D e c o d i n g * * * ********************************************************************************* -* Copyright (C) 2018,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2018,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxbmpio.cpp b/lib/fxbmpio.cpp index 58bd35f..c12a4ab 100644 --- a/lib/fxbmpio.cpp +++ b/lib/fxbmpio.cpp @@ -3,7 +3,7 @@ * B M P I n p u t / O u t p u t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxcompose.cpp b/lib/fxcompose.cpp index 1707afb..2455f2b 100644 --- a/lib/fxcompose.cpp +++ b/lib/fxcompose.cpp @@ -3,7 +3,7 @@ * C o m p o s e / D e c o m p o s e U n i c o d e S t r i n g * * * ********************************************************************************* -* Copyright (C) 2018,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2018,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxcpuid.cpp b/lib/fxcpuid.cpp index d6f835b..ddf536d 100644 --- a/lib/fxcpuid.cpp +++ b/lib/fxcpuid.cpp @@ -3,7 +3,7 @@ * C P U I D S u p p o r t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxddsio.cpp b/lib/fxddsio.cpp index b5bade8..28bdff4 100644 --- a/lib/fxddsio.cpp +++ b/lib/fxddsio.cpp @@ -3,7 +3,7 @@ * D D S I n p u t / O u t p u t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxexeio.cpp b/lib/fxexeio.cpp index 5054816..1da6007 100644 --- a/lib/fxexeio.cpp +++ b/lib/fxexeio.cpp @@ -3,7 +3,7 @@ * L o a d I c o n F r o m E x e c u t a b l e * * * ********************************************************************************* -* Copyright (C) 2014,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2014,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxezquantize.cpp b/lib/fxezquantize.cpp index d7108d0..b14eea6 100644 --- a/lib/fxezquantize.cpp +++ b/lib/fxezquantize.cpp @@ -3,7 +3,7 @@ * E Z C o l o r Q u a n t i z a t i o n * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxfsquantize.cpp b/lib/fxfsquantize.cpp index 95b0585..4da71fb 100644 --- a/lib/fxfsquantize.cpp +++ b/lib/fxfsquantize.cpp @@ -3,7 +3,7 @@ * F S C o l o r Q u a n t i z a t i o n * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxgetticks.cpp b/lib/fxgetticks.cpp index 0976b4e..7cbf338 100644 --- a/lib/fxgetticks.cpp +++ b/lib/fxgetticks.cpp @@ -3,7 +3,7 @@ * U t i l i t y F u n c t i o n s * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxgifio.cpp b/lib/fxgifio.cpp index 85f6728..ac9f620 100644 --- a/lib/fxgifio.cpp +++ b/lib/fxgifio.cpp @@ -3,7 +3,7 @@ * G I F I n p u t / O u t p u t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxiffio.cpp b/lib/fxiffio.cpp index 11de5a1..50dcee3 100644 --- a/lib/fxiffio.cpp +++ b/lib/fxiffio.cpp @@ -3,7 +3,7 @@ * I F F I n p u t / O u t p u t * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxjp2io.cpp b/lib/fxjp2io.cpp index 2b89eed..f73c1b1 100644 --- a/lib/fxjp2io.cpp +++ b/lib/fxjp2io.cpp @@ -3,7 +3,7 @@ * J P E G - 2 0 0 0 I n p u t / O u t p u t * * * ********************************************************************************* -* Copyright (C) 2009,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2009,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxjpegio.cpp b/lib/fxjpegio.cpp index 23d86b1..36a6790 100644 --- a/lib/fxjpegio.cpp +++ b/lib/fxjpegio.cpp @@ -3,7 +3,7 @@ * J P E G I n p u t / O u t p u t * * * ********************************************************************************* -* Copyright (C) 2000,2020 by David Tyree. All Rights Reserved. * +* Copyright (C) 2000,2021 by David Tyree. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxkeyboard.cpp b/lib/fxkeyboard.cpp index 69c5a63..7677bc8 100644 --- a/lib/fxkeyboard.cpp +++ b/lib/fxkeyboard.cpp @@ -3,7 +3,7 @@ * K e y b o a r d H a n d l i n g * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxkeysym.cpp b/lib/fxkeysym.cpp index faf9b05..83ca6b1 100644 --- a/lib/fxkeysym.cpp +++ b/lib/fxkeysym.cpp @@ -3,7 +3,7 @@ * K e y S y m t o U n i c o d e M a p p i n g * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxleaps.cpp b/lib/fxleaps.cpp index fb00194..04beccb 100644 --- a/lib/fxleaps.cpp +++ b/lib/fxleaps.cpp @@ -3,7 +3,7 @@ * T i m e S t u f f * * * ********************************************************************************* -* Copyright (C) 2019,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2019,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxmath.cpp b/lib/fxmath.cpp index 11c23d0..48ff067 100644 --- a/lib/fxmath.cpp +++ b/lib/fxmath.cpp @@ -3,7 +3,7 @@ * M a t h F u n c t i o n s * * * ********************************************************************************* -* Copyright (C) 2015,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2015,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxntp.cpp b/lib/fxntp.cpp index aba9327..7bb7b37 100644 --- a/lib/fxntp.cpp +++ b/lib/fxntp.cpp @@ -3,7 +3,7 @@ * N T P - T i m e * * * ********************************************************************************* -* Copyright (C) 2019,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2019,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxparsegeometry.cpp b/lib/fxparsegeometry.cpp index 9b6f59e..4f9e15e 100644 --- a/lib/fxparsegeometry.cpp +++ b/lib/fxparsegeometry.cpp @@ -3,7 +3,7 @@ * P a r s e G e o m e t r y F r o m C o m m a n d L i n e * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxpcxio.cpp b/lib/fxpcxio.cpp index cfd1807..15a3bd6 100644 --- a/lib/fxpcxio.cpp +++ b/lib/fxpcxio.cpp @@ -3,7 +3,7 @@ * P C X I n p u t / O u t p u t * * * ********************************************************************************* -* Copyright (C) 2001,2020 by Janusz Ganczarski. All Rights Reserved. * +* Copyright (C) 2001,2021 by Janusz Ganczarski. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxpngio.cpp b/lib/fxpngio.cpp index dfc0ed7..e2b83be 100644 --- a/lib/fxpngio.cpp +++ b/lib/fxpngio.cpp @@ -3,7 +3,7 @@ * P N G I n p u t / O u t p u t * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxppmio.cpp b/lib/fxppmio.cpp index 3df71b2..5cf093f 100644 --- a/lib/fxppmio.cpp +++ b/lib/fxppmio.cpp @@ -3,7 +3,7 @@ * P P M I n p u t / O u t p u t * * * ********************************************************************************* -* Copyright (C) 2003,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2003,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * diff --git a/lib/fxprintf.cpp b/lib/fxprintf.cpp index 8e53fea..f32471c 100644 --- a/lib/fxprintf.cpp +++ b/lib/fxprintf.cpp @@ -3,7 +3,7 @@ * V a r a r g s P r i n t f R o u t i n e s * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * @@ -345,44 +345,46 @@ static FXchar* cvt(FXchar* buffer,FXuval size,FXdouble value,FXint& decimal,FXin // decimal point is negative, there will be fewer digits generated, // and the decimal point will be adjusted accordingly. if(flags&FLG_FRACTION){ - if(digits<-decimal) decimal=-digits; + if(decimal<-digits) decimal=-digits; digits+=decimal; } - // Don't exceed buffer space - digits=Math::imin(digits,size-1); + // Don't exceed buffer space; rounding may add 1 digit! + digits=Math::imin(digits,size-2); - // Move string to begin of buffer - while(00){ - *dst++='0'; - digits--; + // And add some zeros if needed + while(0 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US VS_VERSION_INFO VERSIONINFO -FILEVERSION 1,7,76,0 +FILEVERSION 1,7,77,0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -18,12 +18,12 @@ BLOCK "040904b0" BEGIN VALUE "CompanyName", "Jeroen van der Zijp\0" VALUE "FileDescription", "FOX GUI Library\0" -VALUE "FileVersion", "1.7.76.0\0" +VALUE "FileVersion", "1.7.77.0\0" VALUE "InternalName", "FOXDLL-1.@FOX_MINOR_VERSION\0" VALUE "LegalCopyright", "GNU Lesser General Public License Version 3 and License Addendum\0" VALUE "OriginalFilename", "FOXDLL-1.@FOX_MINOR_VERSION.dll\0" VALUE "ProductName", "FOX GUI Library\0" -VALUE "ProductVersion", "1.7.76.0\0" +VALUE "ProductVersion", "1.7.77.0\0" END END BLOCK "VarFileInfo" diff --git a/tests/bitmapviewer.cpp b/tests/bitmapviewer.cpp index 90d18e8..f88fa0a 100644 --- a/tests/bitmapviewer.cpp +++ b/tests/bitmapviewer.cpp @@ -3,7 +3,7 @@ * B i t m a p V i e w e r D e m o * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/button.cpp b/tests/button.cpp index 24dfb8c..7af788a 100644 --- a/tests/button.cpp +++ b/tests/button.cpp @@ -3,7 +3,7 @@ * Button Test * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/calendar.cpp b/tests/calendar.cpp index c669d29..35884f9 100644 --- a/tests/calendar.cpp +++ b/tests/calendar.cpp @@ -3,7 +3,7 @@ * Calendar Example and Test Program * * * ********************************************************************************* -* Copyright (C) 2006,2020 Sander Jansen. All Rights Reserved * +* Copyright (C) 2006,2021 Sander Jansen. All Rights Reserved * ********************************************************************************/ #include diff --git a/tests/codecs.cpp b/tests/codecs.cpp index 1669b5a..19828a5 100644 --- a/tests/codecs.cpp +++ b/tests/codecs.cpp @@ -3,7 +3,7 @@ * Codecs Tests * * * ********************************************************************************* -* Copyright (C) 2005,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2005,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/console.cpp b/tests/console.cpp index 01da8ea..18799d3 100644 --- a/tests/console.cpp +++ b/tests/console.cpp @@ -3,7 +3,7 @@ * Test Console Widget * * * ********************************************************************************* -* Copyright (C) 2006,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2006,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/datatarget.cpp b/tests/datatarget.cpp index 9962f20..1a42cb8 100644 --- a/tests/datatarget.cpp +++ b/tests/datatarget.cpp @@ -3,7 +3,7 @@ * Data Target Test * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/dctest.cpp b/tests/dctest.cpp index 2538695..4f89cf7 100644 --- a/tests/dctest.cpp +++ b/tests/dctest.cpp @@ -3,7 +3,7 @@ * Device Context Tester * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/dialog.cpp b/tests/dialog.cpp index a071ce9..d5d41ee 100644 --- a/tests/dialog.cpp +++ b/tests/dialog.cpp @@ -3,7 +3,7 @@ * Test Dialog Box * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/dirlist.cpp b/tests/dirlist.cpp index c7f8cc2..679452b 100644 --- a/tests/dirlist.cpp +++ b/tests/dirlist.cpp @@ -3,7 +3,7 @@ * D i r e c t o r y L i s t C o n t r o l * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/format.cpp b/tests/format.cpp index 3fe7e1c..c192128 100644 --- a/tests/format.cpp +++ b/tests/format.cpp @@ -3,7 +3,7 @@ * String Format I/O Test * * * ********************************************************************************* -* Copyright (C) 2007,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2007,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" //#include @@ -78,13 +78,16 @@ const double floatnumbers[]={ 4.136, 6442452944.1234, 1.23456789E+20, + 6.4969530541989433e-17, + 0.99999999, + 0.000009995, 0.123456789, 2.2250738585072014e-308, // 0x1p-1022 4.94065645841246544177e-324, // 0x0.0000000000001p-1023 1.7976931348623157e+308, // 0x1.fffffffffffffp+1023 1.9382023e-03, 5e-320, -#if defined(__GNUC__) +#if defined(__GNUC__) 0x0.0000000002788p-1023, #endif 0.0, @@ -257,7 +260,7 @@ int main(int argc,char* argv[]){ fprintf(stdout,"\n"); // Small dernormalized float, passed as floating point hex syntax -#if defined(__GNUC__) +#if defined(__GNUC__) __snprintf(buffer,sizeof(buffer),"%.18le",0x0.0000000002788p-1023); fprintf(stdout,"format=\"%s\" output=\"%s\"\n","%.18le",buffer); __snprintf(buffer,sizeof(buffer),"%a",0x0.0000000002788p-1023); @@ -265,6 +268,9 @@ int main(int argc,char* argv[]){ fprintf(stdout,"\n"); #endif + __snprintf(buffer,sizeof(buffer),"%10.5lf",6.4969530541989433e-17); + fprintf(stdout,"format=\"%s\" output=\"%s\"\n","%10.5lf",buffer); + return 0; } diff --git a/tests/foursplit.cpp b/tests/foursplit.cpp index a6f2184..ed2c1bd 100644 --- a/tests/foursplit.cpp +++ b/tests/foursplit.cpp @@ -3,7 +3,7 @@ * Test 4-Way Splitter Widget * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/gaugetest.cpp b/tests/gaugetest.cpp index 9e1690a..2cfedb7 100644 --- a/tests/gaugetest.cpp +++ b/tests/gaugetest.cpp @@ -3,7 +3,7 @@ * Gauge Widget Test * * * ********************************************************************************* -* Copyright (C) 2010,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2010,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/groupbox.cpp b/tests/groupbox.cpp index 515b77e..37eb8ef 100644 --- a/tests/groupbox.cpp +++ b/tests/groupbox.cpp @@ -3,7 +3,7 @@ * Test Group Box * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/half.cpp b/tests/half.cpp index 7769630..7ea24bc 100644 --- a/tests/half.cpp +++ b/tests/half.cpp @@ -3,7 +3,7 @@ * Half Float Support Test * * * ********************************************************************************* -* Copyright (C) 2008,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2008,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/header.cpp b/tests/header.cpp index cf7fc41..116259f 100644 --- a/tests/header.cpp +++ b/tests/header.cpp @@ -3,7 +3,7 @@ * Test Header Controls * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/iconlist.cpp b/tests/iconlist.cpp index 6da5dc1..8ca6dcb 100644 --- a/tests/iconlist.cpp +++ b/tests/iconlist.cpp @@ -3,7 +3,7 @@ * Test Icon List Widget * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/imageviewer.cpp b/tests/imageviewer.cpp index 937ee0b..3607360 100644 --- a/tests/imageviewer.cpp +++ b/tests/imageviewer.cpp @@ -3,7 +3,7 @@ * I m a g e V i e w e r D e m o * * * ********************************************************************************* -* Copyright (C) 2000,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2000,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/layout.cpp b/tests/layout.cpp index 9ec0f19..695553d 100644 --- a/tests/layout.cpp +++ b/tests/layout.cpp @@ -3,7 +3,7 @@ * Layout Example * * * ****************************************************************************** -* Copyright (C) 2004,2020 by Bill Baxter. All Rights Reserved. * +* Copyright (C) 2004,2021 by Bill Baxter. All Rights Reserved. * *****************************************************************************/ #include "fx.h" #include diff --git a/tests/match.cpp b/tests/match.cpp index d62b76e..f2d6345 100644 --- a/tests/match.cpp +++ b/tests/match.cpp @@ -3,7 +3,7 @@ * File Pattern Match Test * * * ********************************************************************************* -* Copyright (C) 2007,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2007,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/math.cpp b/tests/math.cpp index 558d025..2be7002 100644 --- a/tests/math.cpp +++ b/tests/math.cpp @@ -3,7 +3,7 @@ * M a t h T e s t * * * ********************************************************************************* -* Copyright (C) 2007,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2007,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/mditest.cpp b/tests/mditest.cpp index f0c0ca4..a50769d 100644 --- a/tests/mditest.cpp +++ b/tests/mditest.cpp @@ -3,7 +3,7 @@ * Test MDI Widgets * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/memmap.cpp b/tests/memmap.cpp index 45b43bc..4db3f4c 100644 --- a/tests/memmap.cpp +++ b/tests/memmap.cpp @@ -3,7 +3,7 @@ * M e m o r y M a p T e s t * * * ********************************************************************************* -* Copyright (C) 2004,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2004,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/minheritance.cpp b/tests/minheritance.cpp index 792129b..782c9f5 100644 --- a/tests/minheritance.cpp +++ b/tests/minheritance.cpp @@ -3,7 +3,7 @@ * Multiple Inheritance Test * * * ********************************************************************************* -* Copyright (C) 1998,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1998,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/parallel.cpp b/tests/parallel.cpp index 8a62a5c..6050423 100644 --- a/tests/parallel.cpp +++ b/tests/parallel.cpp @@ -3,7 +3,7 @@ * P a r a l l e l P r o g r a m m i n g T e s t * * * ********************************************************************************* -* Copyright (C) 2012,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2012,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "xincs.h" #include "fx.h" diff --git a/tests/process.cpp b/tests/process.cpp index 87cce1c..f6d4cbc 100644 --- a/tests/process.cpp +++ b/tests/process.cpp @@ -3,7 +3,7 @@ * P r o c e s s - T e s t * * * ********************************************************************************* -* Copyright (C) 2010,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2010,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/rex.cpp b/tests/rex.cpp index 78acf67..19fb7fd 100644 --- a/tests/rex.cpp +++ b/tests/rex.cpp @@ -3,7 +3,7 @@ * Regular Expression Test * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/scan.cpp b/tests/scan.cpp index 00c34d5..906473f 100644 --- a/tests/scan.cpp +++ b/tests/scan.cpp @@ -3,7 +3,7 @@ * String Format I/O Test * * * ********************************************************************************* -* Copyright (C) 2007,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2007,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/splitter.cpp b/tests/splitter.cpp index 14d69dd..79c35c5 100644 --- a/tests/splitter.cpp +++ b/tests/splitter.cpp @@ -3,7 +3,7 @@ * Test Splitter Window * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/switcher.cpp b/tests/switcher.cpp index d3b3c85..a7c0806 100644 --- a/tests/switcher.cpp +++ b/tests/switcher.cpp @@ -3,7 +3,7 @@ * Test Switcher * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/tabbook.cpp b/tests/tabbook.cpp index 5b8a905..d19073c 100644 --- a/tests/tabbook.cpp +++ b/tests/tabbook.cpp @@ -3,7 +3,7 @@ * Test Tab Book * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/table.cpp b/tests/table.cpp index 270164a..9a27ea7 100644 --- a/tests/table.cpp +++ b/tests/table.cpp @@ -3,7 +3,7 @@ * Test Table Widget * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/thread.cpp b/tests/thread.cpp index 63d7cca..e7b2ea7 100644 --- a/tests/thread.cpp +++ b/tests/thread.cpp @@ -3,7 +3,7 @@ * Thread Pool Test * * * ********************************************************************************* -* Copyright (C) 1999,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1999,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/tests/timefmt.cpp b/tests/timefmt.cpp index 51d66ee..f3b1510 100644 --- a/tests/timefmt.cpp +++ b/tests/timefmt.cpp @@ -3,7 +3,7 @@ * String Format I/O Test * * * ********************************************************************************* -* Copyright (C) 2007,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2007,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include "fx3d.h" diff --git a/tests/unicode.cpp b/tests/unicode.cpp index 9d1df21..bf4c594 100644 --- a/tests/unicode.cpp +++ b/tests/unicode.cpp @@ -3,7 +3,7 @@ * Unicode Character Database Tests * * * ********************************************************************************* -* Copyright (C) 2011,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2011,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/wizard.cpp b/tests/wizard.cpp index 6b96f7b..f2b0db6 100644 --- a/tests/wizard.cpp +++ b/tests/wizard.cpp @@ -3,7 +3,7 @@ * Test Wizard * * * ********************************************************************************* -* Copyright (C) 2002,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2002,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" #include diff --git a/tests/xml.cpp b/tests/xml.cpp index 3561adb..15878ac 100644 --- a/tests/xml.cpp +++ b/tests/xml.cpp @@ -3,7 +3,7 @@ * X M L T e s t * * * ********************************************************************************* -* Copyright (C) 2016,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 2016,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************/ #include "fx.h" diff --git a/utils/reswrap.cpp b/utils/reswrap.cpp index f793ed4..64ddee3 100644 --- a/utils/reswrap.cpp +++ b/utils/reswrap.cpp @@ -3,7 +3,7 @@ * R e s o u r c e W r a p p i n g U t i l i t y * * * ********************************************************************************* -* Copyright (C) 1997,2020 by Jeroen van der Zijp. All Rights Reserved. * +* Copyright (C) 1997,2021 by Jeroen van der Zijp. All Rights Reserved. * ********************************************************************************* * 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 * @@ -150,7 +150,7 @@ static void printusage(){ /* Print version information */ static void printversion(){ printf("reswrap %s\n\n",version); - printf("Copyright (C) 1997,2020 Jeroen van der Zijp. All Rights Reserved.\n"); + printf("Copyright (C) 1997,2021 Jeroen van der Zijp. All Rights Reserved.\n"); printf("Please visit: http://www.fox-toolkit.org for further information.\n"); printf("\n"); printf("This program is free software: you can redistribute it and/or modify\n");