gecko/widget/os2/nsRwsService.cpp
Brian R. Bondy 5000953110 Bug 679226 - Fold widget/src into widget. r=roc
--HG--
rename : widget/public/LookAndFeel.h => widget/LookAndFeel.h
rename : widget/public/WidgetTraceEvent.h => widget/WidgetTraceEvent.h
rename : widget/src/android/AndroidBridge.cpp => widget/android/AndroidBridge.cpp
rename : widget/src/android/AndroidBridge.h => widget/android/AndroidBridge.h
rename : widget/src/android/AndroidDirectTexture.cpp => widget/android/AndroidDirectTexture.cpp
rename : widget/src/android/AndroidDirectTexture.h => widget/android/AndroidDirectTexture.h
rename : widget/src/android/AndroidGraphicBuffer.cpp => widget/android/AndroidGraphicBuffer.cpp
rename : widget/src/android/AndroidGraphicBuffer.h => widget/android/AndroidGraphicBuffer.h
rename : widget/src/android/AndroidJNI.cpp => widget/android/AndroidJNI.cpp
rename : widget/src/android/AndroidJavaWrappers.cpp => widget/android/AndroidJavaWrappers.cpp
rename : widget/src/android/AndroidJavaWrappers.h => widget/android/AndroidJavaWrappers.h
rename : widget/src/android/GfxInfo.cpp => widget/android/GfxInfo.cpp
rename : widget/src/android/GfxInfo.h => widget/android/GfxInfo.h
rename : widget/src/android/Makefile.in => widget/android/Makefile.in
rename : widget/src/android/nsAppShell.cpp => widget/android/nsAppShell.cpp
rename : widget/src/android/nsAppShell.h => widget/android/nsAppShell.h
rename : widget/src/android/nsClipboard.cpp => widget/android/nsClipboard.cpp
rename : widget/src/android/nsClipboard.h => widget/android/nsClipboard.h
rename : widget/src/android/nsDeviceContextAndroid.cpp => widget/android/nsDeviceContextAndroid.cpp
rename : widget/src/android/nsDeviceContextAndroid.h => widget/android/nsDeviceContextAndroid.h
rename : widget/src/android/nsFilePicker.cpp => widget/android/nsFilePicker.cpp
rename : widget/src/android/nsFilePicker.h => widget/android/nsFilePicker.h
rename : widget/src/android/nsIAndroidBridge.idl => widget/android/nsIAndroidBridge.idl
rename : widget/src/android/nsIMEPicker.cpp => widget/android/nsIMEPicker.cpp
rename : widget/src/android/nsIMEPicker.h => widget/android/nsIMEPicker.h
rename : widget/src/android/nsIdleServiceAndroid.cpp => widget/android/nsIdleServiceAndroid.cpp
rename : widget/src/android/nsIdleServiceAndroid.h => widget/android/nsIdleServiceAndroid.h
rename : widget/src/android/nsLookAndFeel.cpp => widget/android/nsLookAndFeel.cpp
rename : widget/src/android/nsLookAndFeel.h => widget/android/nsLookAndFeel.h
rename : widget/src/android/nsPrintOptionsAndroid.cpp => widget/android/nsPrintOptionsAndroid.cpp
rename : widget/src/android/nsPrintOptionsAndroid.h => widget/android/nsPrintOptionsAndroid.h
rename : widget/src/android/nsScreenManagerAndroid.cpp => widget/android/nsScreenManagerAndroid.cpp
rename : widget/src/android/nsScreenManagerAndroid.h => widget/android/nsScreenManagerAndroid.h
rename : widget/src/android/nsWidgetFactory.cpp => widget/android/nsWidgetFactory.cpp
rename : widget/src/android/nsWindow.cpp => widget/android/nsWindow.cpp
rename : widget/src/android/nsWindow.h => widget/android/nsWindow.h
rename : widget/src/build/Makefile.in => widget/build/Makefile.in
rename : widget/src/build/nsWinWidgetFactory.cpp => widget/build/nsWinWidgetFactory.cpp
rename : widget/src/build/res/aliasb.cur => widget/build/res/aliasb.cur
rename : widget/src/build/res/cell.cur => widget/build/res/cell.cur
rename : widget/src/build/res/col_resize.cur => widget/build/res/col_resize.cur
rename : widget/src/build/res/copy.cur => widget/build/res/copy.cur
rename : widget/src/build/res/grab.cur => widget/build/res/grab.cur
rename : widget/src/build/res/grabbing.cur => widget/build/res/grabbing.cur
rename : widget/src/build/res/none.cur => widget/build/res/none.cur
rename : widget/src/build/res/row_resize.cur => widget/build/res/row_resize.cur
rename : widget/src/build/res/select.cur => widget/build/res/select.cur
rename : widget/src/build/res/vertical_text.cur => widget/build/res/vertical_text.cur
rename : widget/src/build/res/zoom_in.cur => widget/build/res/zoom_in.cur
rename : widget/src/build/res/zoom_out.cur => widget/build/res/zoom_out.cur
rename : widget/src/build/widget.rc => widget/build/widget.rc
rename : widget/src/cocoa/ComplexTextInputPanel.h => widget/cocoa/ComplexTextInputPanel.h
rename : widget/src/cocoa/ComplexTextInputPanel.mm => widget/cocoa/ComplexTextInputPanel.mm
rename : widget/src/cocoa/CustomCocoaEvents.h => widget/cocoa/CustomCocoaEvents.h
rename : widget/src/cocoa/GfxInfo.h => widget/cocoa/GfxInfo.h
rename : widget/src/cocoa/GfxInfo.mm => widget/cocoa/GfxInfo.mm
rename : widget/src/cocoa/Makefile.in => widget/cocoa/Makefile.in
rename : widget/src/cocoa/TextInputHandler.h => widget/cocoa/TextInputHandler.h
rename : widget/src/cocoa/TextInputHandler.mm => widget/cocoa/TextInputHandler.mm
rename : widget/src/cocoa/WidgetTraceEvent.mm => widget/cocoa/WidgetTraceEvent.mm
rename : widget/src/cocoa/crashtests/373122-1-inner.html => widget/cocoa/crashtests/373122-1-inner.html
rename : widget/src/cocoa/crashtests/373122-1.html => widget/cocoa/crashtests/373122-1.html
rename : widget/src/cocoa/crashtests/397209-1.html => widget/cocoa/crashtests/397209-1.html
rename : widget/src/cocoa/crashtests/403296-1.xhtml => widget/cocoa/crashtests/403296-1.xhtml
rename : widget/src/cocoa/crashtests/419737-1.html => widget/cocoa/crashtests/419737-1.html
rename : widget/src/cocoa/crashtests/435223-1.html => widget/cocoa/crashtests/435223-1.html
rename : widget/src/cocoa/crashtests/444260-1.xul => widget/cocoa/crashtests/444260-1.xul
rename : widget/src/cocoa/crashtests/444864-1.html => widget/cocoa/crashtests/444864-1.html
rename : widget/src/cocoa/crashtests/449111-1.html => widget/cocoa/crashtests/449111-1.html
rename : widget/src/cocoa/crashtests/460349-1.xhtml => widget/cocoa/crashtests/460349-1.xhtml
rename : widget/src/cocoa/crashtests/460387-1.html => widget/cocoa/crashtests/460387-1.html
rename : widget/src/cocoa/crashtests/464589-1.html => widget/cocoa/crashtests/464589-1.html
rename : widget/src/cocoa/crashtests/crashtests.list => widget/cocoa/crashtests/crashtests.list
rename : widget/src/cocoa/cursors/arrowN.tiff => widget/cocoa/cursors/arrowN.tiff
rename : widget/src/cocoa/cursors/arrowS.tiff => widget/cocoa/cursors/arrowS.tiff
rename : widget/src/cocoa/cursors/colResize.tiff => widget/cocoa/cursors/colResize.tiff
rename : widget/src/cocoa/cursors/help.tiff => widget/cocoa/cursors/help.tiff
rename : widget/src/cocoa/cursors/rowResize.tiff => widget/cocoa/cursors/rowResize.tiff
rename : widget/src/cocoa/cursors/sizeNE.tiff => widget/cocoa/cursors/sizeNE.tiff
rename : widget/src/cocoa/cursors/sizeNESW.tiff => widget/cocoa/cursors/sizeNESW.tiff
rename : widget/src/cocoa/cursors/sizeNS.tiff => widget/cocoa/cursors/sizeNS.tiff
rename : widget/src/cocoa/cursors/sizeNW.tiff => widget/cocoa/cursors/sizeNW.tiff
rename : widget/src/cocoa/cursors/sizeNWSE.tiff => widget/cocoa/cursors/sizeNWSE.tiff
rename : widget/src/cocoa/cursors/sizeSE.tiff => widget/cocoa/cursors/sizeSE.tiff
rename : widget/src/cocoa/cursors/sizeSW.tiff => widget/cocoa/cursors/sizeSW.tiff
rename : widget/src/cocoa/cursors/spin1.tiff => widget/cocoa/cursors/spin1.tiff
rename : widget/src/cocoa/cursors/spin2.tiff => widget/cocoa/cursors/spin2.tiff
rename : widget/src/cocoa/cursors/spin3.tiff => widget/cocoa/cursors/spin3.tiff
rename : widget/src/cocoa/cursors/spin4.tiff => widget/cocoa/cursors/spin4.tiff
rename : widget/src/cocoa/cursors/vtIBeam.tiff => widget/cocoa/cursors/vtIBeam.tiff
rename : widget/src/cocoa/cursors/zoomIn.tiff => widget/cocoa/cursors/zoomIn.tiff
rename : widget/src/cocoa/cursors/zoomOut.tiff => widget/cocoa/cursors/zoomOut.tiff
rename : widget/src/cocoa/mozView.h => widget/cocoa/mozView.h
rename : widget/src/cocoa/nsAppShell.h => widget/cocoa/nsAppShell.h
rename : widget/src/cocoa/nsAppShell.mm => widget/cocoa/nsAppShell.mm
rename : widget/src/cocoa/nsBidiKeyboard.h => widget/cocoa/nsBidiKeyboard.h
rename : widget/src/cocoa/nsBidiKeyboard.mm => widget/cocoa/nsBidiKeyboard.mm
rename : widget/src/cocoa/nsChangeObserver.h => widget/cocoa/nsChangeObserver.h
rename : widget/src/cocoa/nsChildView.h => widget/cocoa/nsChildView.h
rename : widget/src/cocoa/nsChildView.mm => widget/cocoa/nsChildView.mm
rename : widget/src/cocoa/nsClipboard.h => widget/cocoa/nsClipboard.h
rename : widget/src/cocoa/nsClipboard.mm => widget/cocoa/nsClipboard.mm
rename : widget/src/cocoa/nsCocoaFeatures.h => widget/cocoa/nsCocoaFeatures.h
rename : widget/src/cocoa/nsCocoaFeatures.mm => widget/cocoa/nsCocoaFeatures.mm
rename : widget/src/cocoa/nsCocoaUtils.h => widget/cocoa/nsCocoaUtils.h
rename : widget/src/cocoa/nsCocoaUtils.mm => widget/cocoa/nsCocoaUtils.mm
rename : widget/src/cocoa/nsCocoaWindow.h => widget/cocoa/nsCocoaWindow.h
rename : widget/src/cocoa/nsCocoaWindow.mm => widget/cocoa/nsCocoaWindow.mm
rename : widget/src/cocoa/nsCursorManager.h => widget/cocoa/nsCursorManager.h
rename : widget/src/cocoa/nsCursorManager.mm => widget/cocoa/nsCursorManager.mm
rename : widget/src/cocoa/nsDeviceContextSpecX.h => widget/cocoa/nsDeviceContextSpecX.h
rename : widget/src/cocoa/nsDeviceContextSpecX.mm => widget/cocoa/nsDeviceContextSpecX.mm
rename : widget/src/cocoa/nsDragService.h => widget/cocoa/nsDragService.h
rename : widget/src/cocoa/nsDragService.mm => widget/cocoa/nsDragService.mm
rename : widget/src/cocoa/nsFilePicker.h => widget/cocoa/nsFilePicker.h
rename : widget/src/cocoa/nsFilePicker.mm => widget/cocoa/nsFilePicker.mm
rename : widget/src/cocoa/nsIdleServiceX.h => widget/cocoa/nsIdleServiceX.h
rename : widget/src/cocoa/nsIdleServiceX.mm => widget/cocoa/nsIdleServiceX.mm
rename : widget/src/cocoa/nsLookAndFeel.h => widget/cocoa/nsLookAndFeel.h
rename : widget/src/cocoa/nsLookAndFeel.mm => widget/cocoa/nsLookAndFeel.mm
rename : widget/src/cocoa/nsMacCursor.h => widget/cocoa/nsMacCursor.h
rename : widget/src/cocoa/nsMacCursor.mm => widget/cocoa/nsMacCursor.mm
rename : widget/src/cocoa/nsMacDockSupport.h => widget/cocoa/nsMacDockSupport.h
rename : widget/src/cocoa/nsMacDockSupport.mm => widget/cocoa/nsMacDockSupport.mm
rename : widget/src/cocoa/nsMenuBarX.h => widget/cocoa/nsMenuBarX.h
rename : widget/src/cocoa/nsMenuBarX.mm => widget/cocoa/nsMenuBarX.mm
rename : widget/src/cocoa/nsMenuBaseX.h => widget/cocoa/nsMenuBaseX.h
rename : widget/src/cocoa/nsMenuGroupOwnerX.h => widget/cocoa/nsMenuGroupOwnerX.h
rename : widget/src/cocoa/nsMenuGroupOwnerX.mm => widget/cocoa/nsMenuGroupOwnerX.mm
rename : widget/src/cocoa/nsMenuItemIconX.h => widget/cocoa/nsMenuItemIconX.h
rename : widget/src/cocoa/nsMenuItemIconX.mm => widget/cocoa/nsMenuItemIconX.mm
rename : widget/src/cocoa/nsMenuItemX.h => widget/cocoa/nsMenuItemX.h
rename : widget/src/cocoa/nsMenuItemX.mm => widget/cocoa/nsMenuItemX.mm
rename : widget/src/cocoa/nsMenuUtilsX.h => widget/cocoa/nsMenuUtilsX.h
rename : widget/src/cocoa/nsMenuUtilsX.mm => widget/cocoa/nsMenuUtilsX.mm
rename : widget/src/cocoa/nsMenuX.h => widget/cocoa/nsMenuX.h
rename : widget/src/cocoa/nsMenuX.mm => widget/cocoa/nsMenuX.mm
rename : widget/src/cocoa/nsNativeThemeCocoa.h => widget/cocoa/nsNativeThemeCocoa.h
rename : widget/src/cocoa/nsNativeThemeCocoa.mm => widget/cocoa/nsNativeThemeCocoa.mm
rename : widget/src/cocoa/nsNativeThemeColors.h => widget/cocoa/nsNativeThemeColors.h
rename : widget/src/cocoa/nsPIWidgetCocoa.idl => widget/cocoa/nsPIWidgetCocoa.idl
rename : widget/src/cocoa/nsPrintDialogX.h => widget/cocoa/nsPrintDialogX.h
rename : widget/src/cocoa/nsPrintDialogX.mm => widget/cocoa/nsPrintDialogX.mm
rename : widget/src/cocoa/nsPrintOptionsX.h => widget/cocoa/nsPrintOptionsX.h
rename : widget/src/cocoa/nsPrintOptionsX.mm => widget/cocoa/nsPrintOptionsX.mm
rename : widget/src/cocoa/nsPrintSettingsX.h => widget/cocoa/nsPrintSettingsX.h
rename : widget/src/cocoa/nsPrintSettingsX.mm => widget/cocoa/nsPrintSettingsX.mm
rename : widget/src/cocoa/nsScreenCocoa.h => widget/cocoa/nsScreenCocoa.h
rename : widget/src/cocoa/nsScreenCocoa.mm => widget/cocoa/nsScreenCocoa.mm
rename : widget/src/cocoa/nsScreenManagerCocoa.h => widget/cocoa/nsScreenManagerCocoa.h
rename : widget/src/cocoa/nsScreenManagerCocoa.mm => widget/cocoa/nsScreenManagerCocoa.mm
rename : widget/src/cocoa/nsSound.h => widget/cocoa/nsSound.h
rename : widget/src/cocoa/nsSound.mm => widget/cocoa/nsSound.mm
rename : widget/src/cocoa/nsStandaloneNativeMenu.h => widget/cocoa/nsStandaloneNativeMenu.h
rename : widget/src/cocoa/nsStandaloneNativeMenu.mm => widget/cocoa/nsStandaloneNativeMenu.mm
rename : widget/src/cocoa/nsToolkit.h => widget/cocoa/nsToolkit.h
rename : widget/src/cocoa/nsToolkit.mm => widget/cocoa/nsToolkit.mm
rename : widget/src/cocoa/nsWidgetFactory.mm => widget/cocoa/nsWidgetFactory.mm
rename : widget/src/cocoa/nsWindowMap.h => widget/cocoa/nsWindowMap.h
rename : widget/src/cocoa/nsWindowMap.mm => widget/cocoa/nsWindowMap.mm
rename : widget/src/cocoa/resources/MainMenu.nib/classes.nib => widget/cocoa/resources/MainMenu.nib/classes.nib
rename : widget/src/cocoa/resources/MainMenu.nib/info.nib => widget/cocoa/resources/MainMenu.nib/info.nib
rename : widget/src/cocoa/resources/MainMenu.nib/keyedobjects.nib => widget/cocoa/resources/MainMenu.nib/keyedobjects.nib
rename : widget/src/crashtests/303901-1.html => widget/crashtests/303901-1.html
rename : widget/src/crashtests/303901-2.html => widget/crashtests/303901-2.html
rename : widget/src/crashtests/380359-1.xhtml => widget/crashtests/380359-1.xhtml
rename : widget/src/crashtests/crashtests.list => widget/crashtests/crashtests.list
rename : widget/src/gonk/Framebuffer.cpp => widget/gonk/Framebuffer.cpp
rename : widget/src/gonk/Framebuffer.h => widget/gonk/Framebuffer.h
rename : widget/src/gonk/Makefile.in => widget/gonk/Makefile.in
rename : widget/src/gonk/nsAppShell.cpp => widget/gonk/nsAppShell.cpp
rename : widget/src/gonk/nsAppShell.h => widget/gonk/nsAppShell.h
rename : widget/src/gonk/nsLookAndFeel.cpp => widget/gonk/nsLookAndFeel.cpp
rename : widget/src/gonk/nsLookAndFeel.h => widget/gonk/nsLookAndFeel.h
rename : widget/src/gonk/nsScreenManagerGonk.cpp => widget/gonk/nsScreenManagerGonk.cpp
rename : widget/src/gonk/nsScreenManagerGonk.h => widget/gonk/nsScreenManagerGonk.h
rename : widget/src/gonk/nsWidgetFactory.cpp => widget/gonk/nsWidgetFactory.cpp
rename : widget/src/gonk/nsWindow.cpp => widget/gonk/nsWindow.cpp
rename : widget/src/gonk/nsWindow.h => widget/gonk/nsWindow.h
rename : widget/src/gtk2/Makefile.in => widget/gtk2/Makefile.in
rename : widget/src/gtk2/WidgetTraceEvent.cpp => widget/gtk2/WidgetTraceEvent.cpp
rename : widget/src/gtk2/crashtests/673390-1.html => widget/gtk2/crashtests/673390-1.html
rename : widget/src/gtk2/crashtests/crashtests.list => widget/gtk2/crashtests/crashtests.list
rename : widget/src/gtk2/gtk2compat.h => widget/gtk2/gtk2compat.h
rename : widget/src/gtk2/gtk2drawing.c => widget/gtk2/gtk2drawing.c
rename : widget/src/gtk2/gtkdrawing.h => widget/gtk2/gtkdrawing.h
rename : widget/src/gtk2/maiRedundantObjectFactory.c => widget/gtk2/maiRedundantObjectFactory.c
rename : widget/src/gtk2/maiRedundantObjectFactory.h => widget/gtk2/maiRedundantObjectFactory.h
rename : widget/src/gtk2/mozcontainer.c => widget/gtk2/mozcontainer.c
rename : widget/src/gtk2/mozcontainer.h => widget/gtk2/mozcontainer.h
rename : widget/src/gtk2/nsAppShell.cpp => widget/gtk2/nsAppShell.cpp
rename : widget/src/gtk2/nsAppShell.h => widget/gtk2/nsAppShell.h
rename : widget/src/gtk2/nsBidiKeyboard.cpp => widget/gtk2/nsBidiKeyboard.cpp
rename : widget/src/gtk2/nsBidiKeyboard.h => widget/gtk2/nsBidiKeyboard.h
rename : widget/src/gtk2/nsCUPSShim.cpp => widget/gtk2/nsCUPSShim.cpp
rename : widget/src/gtk2/nsCUPSShim.h => widget/gtk2/nsCUPSShim.h
rename : widget/src/gtk2/nsClipboard.cpp => widget/gtk2/nsClipboard.cpp
rename : widget/src/gtk2/nsClipboard.h => widget/gtk2/nsClipboard.h
rename : widget/src/gtk2/nsDeviceContextSpecG.cpp => widget/gtk2/nsDeviceContextSpecG.cpp
rename : widget/src/gtk2/nsDeviceContextSpecG.h => widget/gtk2/nsDeviceContextSpecG.h
rename : widget/src/gtk2/nsDragService.cpp => widget/gtk2/nsDragService.cpp
rename : widget/src/gtk2/nsDragService.h => widget/gtk2/nsDragService.h
rename : widget/src/gtk2/nsFilePicker.cpp => widget/gtk2/nsFilePicker.cpp
rename : widget/src/gtk2/nsFilePicker.h => widget/gtk2/nsFilePicker.h
rename : widget/src/gtk2/nsGTKToolkit.h => widget/gtk2/nsGTKToolkit.h
rename : widget/src/gtk2/nsGtkCursors.h => widget/gtk2/nsGtkCursors.h
rename : widget/src/gtk2/nsGtkIMModule.cpp => widget/gtk2/nsGtkIMModule.cpp
rename : widget/src/gtk2/nsGtkIMModule.h => widget/gtk2/nsGtkIMModule.h
rename : widget/src/gtk2/nsGtkKeyUtils.cpp => widget/gtk2/nsGtkKeyUtils.cpp
rename : widget/src/gtk2/nsGtkKeyUtils.h => widget/gtk2/nsGtkKeyUtils.h
rename : widget/src/gtk2/nsIImageToPixbuf.h => widget/gtk2/nsIImageToPixbuf.h
rename : widget/src/gtk2/nsIdleServiceGTK.cpp => widget/gtk2/nsIdleServiceGTK.cpp
rename : widget/src/gtk2/nsIdleServiceGTK.h => widget/gtk2/nsIdleServiceGTK.h
rename : widget/src/gtk2/nsImageToPixbuf.cpp => widget/gtk2/nsImageToPixbuf.cpp
rename : widget/src/gtk2/nsImageToPixbuf.h => widget/gtk2/nsImageToPixbuf.h
rename : widget/src/gtk2/nsLookAndFeel.cpp => widget/gtk2/nsLookAndFeel.cpp
rename : widget/src/gtk2/nsLookAndFeel.h => widget/gtk2/nsLookAndFeel.h
rename : widget/src/gtk2/nsNativeKeyBindings.cpp => widget/gtk2/nsNativeKeyBindings.cpp
rename : widget/src/gtk2/nsNativeKeyBindings.h => widget/gtk2/nsNativeKeyBindings.h
rename : widget/src/gtk2/nsNativeThemeGTK.cpp => widget/gtk2/nsNativeThemeGTK.cpp
rename : widget/src/gtk2/nsNativeThemeGTK.h => widget/gtk2/nsNativeThemeGTK.h
rename : widget/src/gtk2/nsPSPrinters.cpp => widget/gtk2/nsPSPrinters.cpp
rename : widget/src/gtk2/nsPSPrinters.h => widget/gtk2/nsPSPrinters.h
rename : widget/src/gtk2/nsPaperPS.cpp => widget/gtk2/nsPaperPS.cpp
rename : widget/src/gtk2/nsPaperPS.h => widget/gtk2/nsPaperPS.h
rename : widget/src/gtk2/nsPrintDialogGTK.cpp => widget/gtk2/nsPrintDialogGTK.cpp
rename : widget/src/gtk2/nsPrintDialogGTK.h => widget/gtk2/nsPrintDialogGTK.h
rename : widget/src/gtk2/nsPrintOptionsGTK.cpp => widget/gtk2/nsPrintOptionsGTK.cpp
rename : widget/src/gtk2/nsPrintOptionsGTK.h => widget/gtk2/nsPrintOptionsGTK.h
rename : widget/src/gtk2/nsPrintSettingsGTK.cpp => widget/gtk2/nsPrintSettingsGTK.cpp
rename : widget/src/gtk2/nsPrintSettingsGTK.h => widget/gtk2/nsPrintSettingsGTK.h
rename : widget/src/gtk2/nsScreenGtk.cpp => widget/gtk2/nsScreenGtk.cpp
rename : widget/src/gtk2/nsScreenGtk.h => widget/gtk2/nsScreenGtk.h
rename : widget/src/gtk2/nsScreenManagerGtk.cpp => widget/gtk2/nsScreenManagerGtk.cpp
rename : widget/src/gtk2/nsScreenManagerGtk.h => widget/gtk2/nsScreenManagerGtk.h
rename : widget/src/gtk2/nsSound.cpp => widget/gtk2/nsSound.cpp
rename : widget/src/gtk2/nsSound.h => widget/gtk2/nsSound.h
rename : widget/src/gtk2/nsToolkit.cpp => widget/gtk2/nsToolkit.cpp
rename : widget/src/gtk2/nsWidgetFactory.cpp => widget/gtk2/nsWidgetFactory.cpp
rename : widget/src/gtk2/nsWindow.cpp => widget/gtk2/nsWindow.cpp
rename : widget/src/gtk2/nsWindow.h => widget/gtk2/nsWindow.h
rename : widget/src/gtkxtbin/Makefile.in => widget/gtkxtbin/Makefile.in
rename : widget/src/gtkxtbin/gtk2xtbin.c => widget/gtkxtbin/gtk2xtbin.c
rename : widget/src/gtkxtbin/gtk2xtbin.h => widget/gtkxtbin/gtk2xtbin.h
rename : widget/src/gtkxtbin/xembed.h => widget/gtkxtbin/xembed.h
rename : widget/public/nsEvent.h => widget/nsEvent.h
rename : widget/public/nsGUIEvent.h => widget/nsGUIEvent.h
rename : widget/public/nsGUIEventIPC.h => widget/nsGUIEventIPC.h
rename : widget/public/nsIAppShell.idl => widget/nsIAppShell.idl
rename : widget/public/nsIBaseWindow.idl => widget/nsIBaseWindow.idl
rename : widget/public/nsIBidiKeyboard.idl => widget/nsIBidiKeyboard.idl
rename : widget/public/nsIClipboard.idl => widget/nsIClipboard.idl
rename : widget/public/nsIClipboardDragDropHookList.idl => widget/nsIClipboardDragDropHookList.idl
rename : widget/public/nsIClipboardDragDropHooks.idl => widget/nsIClipboardDragDropHooks.idl
rename : widget/public/nsIClipboardHelper.idl => widget/nsIClipboardHelper.idl
rename : widget/public/nsIClipboardOwner.idl => widget/nsIClipboardOwner.idl
rename : widget/public/nsIDeviceContextSpec.h => widget/nsIDeviceContextSpec.h
rename : widget/public/nsIDragService.idl => widget/nsIDragService.idl
rename : widget/public/nsIDragSession.idl => widget/nsIDragSession.idl
rename : widget/public/nsIDragSessionGTK.h => widget/nsIDragSessionGTK.h
rename : widget/public/nsIDragSessionOS2.h => widget/nsIDragSessionOS2.h
rename : widget/public/nsIFilePicker.idl => widget/nsIFilePicker.idl
rename : widget/public/nsIFormatConverter.idl => widget/nsIFormatConverter.idl
rename : widget/public/nsIGfxInfo.idl => widget/nsIGfxInfo.idl
rename : widget/public/nsIGfxInfoDebug.idl => widget/nsIGfxInfoDebug.idl
rename : widget/public/nsIIMEPicker.idl => widget/nsIIMEPicker.idl
rename : widget/public/nsIIdleService.idl => widget/nsIIdleService.idl
rename : widget/public/nsIJumpListBuilder.idl => widget/nsIJumpListBuilder.idl
rename : widget/public/nsIJumpListItem.idl => widget/nsIJumpListItem.idl
rename : widget/public/nsIMacDockSupport.idl => widget/nsIMacDockSupport.idl
rename : widget/public/nsINativeKeyBindings.h => widget/nsINativeKeyBindings.h
rename : widget/public/nsINativeMenuService.h => widget/nsINativeMenuService.h
rename : widget/public/nsIPluginWidget.h => widget/nsIPluginWidget.h
rename : widget/public/nsIPrintDialogService.h => widget/nsIPrintDialogService.h
rename : widget/public/nsIPrintOptions.idl => widget/nsIPrintOptions.idl
rename : widget/public/nsIPrintSession.idl => widget/nsIPrintSession.idl
rename : widget/public/nsIPrintSettings.idl => widget/nsIPrintSettings.idl
rename : widget/public/nsIPrintSettingsService.idl => widget/nsIPrintSettingsService.idl
rename : widget/public/nsIPrintSettingsWin.idl => widget/nsIPrintSettingsWin.idl
rename : widget/public/nsIRollupListener.h => widget/nsIRollupListener.h
rename : widget/public/nsIRwsService.idl => widget/nsIRwsService.idl
rename : widget/public/nsIScreen.idl => widget/nsIScreen.idl
rename : widget/public/nsIScreenManager.idl => widget/nsIScreenManager.idl
rename : widget/public/nsISound.idl => widget/nsISound.idl
rename : widget/public/nsIStandaloneNativeMenu.idl => widget/nsIStandaloneNativeMenu.idl
rename : widget/public/nsITaskbarOverlayIconController.idl => widget/nsITaskbarOverlayIconController.idl
rename : widget/public/nsITaskbarPreview.idl => widget/nsITaskbarPreview.idl
rename : widget/public/nsITaskbarPreviewButton.idl => widget/nsITaskbarPreviewButton.idl
rename : widget/public/nsITaskbarPreviewController.idl => widget/nsITaskbarPreviewController.idl
rename : widget/public/nsITaskbarProgress.idl => widget/nsITaskbarProgress.idl
rename : widget/public/nsITaskbarTabPreview.idl => widget/nsITaskbarTabPreview.idl
rename : widget/public/nsITaskbarWindowPreview.idl => widget/nsITaskbarWindowPreview.idl
rename : widget/public/nsITransferable.idl => widget/nsITransferable.idl
rename : widget/public/nsIWidget.h => widget/nsIWidget.h
rename : widget/public/nsIWinTaskbar.idl => widget/nsIWinTaskbar.idl
rename : widget/public/nsNativeWidget.h => widget/nsNativeWidget.h
rename : widget/public/nsWidgetInitData.h => widget/nsWidgetInitData.h
rename : widget/public/nsWidgetsCID.h => widget/nsWidgetsCID.h
rename : widget/src/os2/Makefile.in => widget/os2/Makefile.in
rename : widget/src/os2/MozSounds.cmd => widget/os2/MozSounds.cmd
rename : widget/src/os2/README.firefox => widget/os2/README.firefox
rename : widget/src/os2/README.seamonkey => widget/os2/README.seamonkey
rename : widget/src/os2/README.thunderbird => widget/os2/README.thunderbird
rename : widget/src/os2/nsAppShell.cpp => widget/os2/nsAppShell.cpp
rename : widget/src/os2/nsAppShell.h => widget/os2/nsAppShell.h
rename : widget/src/os2/nsBidiKeyboard.cpp => widget/os2/nsBidiKeyboard.cpp
rename : widget/src/os2/nsBidiKeyboard.h => widget/os2/nsBidiKeyboard.h
rename : widget/src/os2/nsClipboard.cpp => widget/os2/nsClipboard.cpp
rename : widget/src/os2/nsClipboard.h => widget/os2/nsClipboard.h
rename : widget/src/os2/nsDeviceContextSpecOS2.cpp => widget/os2/nsDeviceContextSpecOS2.cpp
rename : widget/src/os2/nsDeviceContextSpecOS2.h => widget/os2/nsDeviceContextSpecOS2.h
rename : widget/src/os2/nsDragService.cpp => widget/os2/nsDragService.cpp
rename : widget/src/os2/nsDragService.h => widget/os2/nsDragService.h
rename : widget/src/os2/nsFilePicker.cpp => widget/os2/nsFilePicker.cpp
rename : widget/src/os2/nsFilePicker.h => widget/os2/nsFilePicker.h
rename : widget/src/os2/nsGfxDefs.h => widget/os2/nsGfxDefs.h
rename : widget/src/os2/nsIdleServiceOS2.cpp => widget/os2/nsIdleServiceOS2.cpp
rename : widget/src/os2/nsIdleServiceOS2.h => widget/os2/nsIdleServiceOS2.h
rename : widget/src/os2/nsLookAndFeel.cpp => widget/os2/nsLookAndFeel.cpp
rename : widget/src/os2/nsLookAndFeel.h => widget/os2/nsLookAndFeel.h
rename : widget/src/os2/nsOS2Uni.cpp => widget/os2/nsOS2Uni.cpp
rename : widget/src/os2/nsOS2Uni.h => widget/os2/nsOS2Uni.h
rename : widget/src/os2/nsPrintOS2.cpp => widget/os2/nsPrintOS2.cpp
rename : widget/src/os2/nsPrintOS2.h => widget/os2/nsPrintOS2.h
rename : widget/src/os2/nsPrintOptionsOS2.cpp => widget/os2/nsPrintOptionsOS2.cpp
rename : widget/src/os2/nsPrintOptionsOS2.h => widget/os2/nsPrintOptionsOS2.h
rename : widget/src/os2/nsPrintdOS2.h => widget/os2/nsPrintdOS2.h
rename : widget/src/os2/nsRwsService.cpp => widget/os2/nsRwsService.cpp
rename : widget/src/os2/nsRwsService.h => widget/os2/nsRwsService.h
rename : widget/src/os2/nsScreenManagerOS2.cpp => widget/os2/nsScreenManagerOS2.cpp
rename : widget/src/os2/nsScreenManagerOS2.h => widget/os2/nsScreenManagerOS2.h
rename : widget/src/os2/nsScreenOS2.cpp => widget/os2/nsScreenOS2.cpp
rename : widget/src/os2/nsScreenOS2.h => widget/os2/nsScreenOS2.h
rename : widget/src/os2/nsSound.cpp => widget/os2/nsSound.cpp
rename : widget/src/os2/nsSound.h => widget/os2/nsSound.h
rename : widget/src/os2/nsWidgetFactory.cpp => widget/os2/nsWidgetFactory.cpp
rename : widget/src/os2/nsWindow.cpp => widget/os2/nsWindow.cpp
rename : widget/src/os2/nsWindow.h => widget/os2/nsWindow.h
rename : widget/src/os2/os2FrameWindow.cpp => widget/os2/os2FrameWindow.cpp
rename : widget/src/os2/os2FrameWindow.h => widget/os2/os2FrameWindow.h
rename : widget/src/os2/res/aliasb.ptr => widget/os2/res/aliasb.ptr
rename : widget/src/os2/res/arrow_wait.ptr => widget/os2/res/arrow_wait.ptr
rename : widget/src/os2/res/cell.ptr => widget/os2/res/cell.ptr
rename : widget/src/os2/res/col_resize.ptr => widget/os2/res/col_resize.ptr
rename : widget/src/os2/res/copy.ptr => widget/os2/res/copy.ptr
rename : widget/src/os2/res/crosshair.ptr => widget/os2/res/crosshair.ptr
rename : widget/src/os2/res/dndtext.ico => widget/os2/res/dndtext.ico
rename : widget/src/os2/res/dndurl.ico => widget/os2/res/dndurl.ico
rename : widget/src/os2/res/grab.ptr => widget/os2/res/grab.ptr
rename : widget/src/os2/res/grabbing.ptr => widget/os2/res/grabbing.ptr
rename : widget/src/os2/res/help.ptr => widget/os2/res/help.ptr
rename : widget/src/os2/res/none.ptr => widget/os2/res/none.ptr
rename : widget/src/os2/res/row_resize.ptr => widget/os2/res/row_resize.ptr
rename : widget/src/os2/res/select.ptr => widget/os2/res/select.ptr
rename : widget/src/os2/res/vertical_text.ptr => widget/os2/res/vertical_text.ptr
rename : widget/src/os2/res/zoom_in.ptr => widget/os2/res/zoom_in.ptr
rename : widget/src/os2/res/zoom_out.ptr => widget/os2/res/zoom_out.ptr
rename : widget/src/os2/rws.h => widget/os2/rws.h
rename : widget/src/os2/rwserr.h => widget/os2/rwserr.h
rename : widget/src/os2/wdgtos2rc.h => widget/os2/wdgtos2rc.h
rename : widget/src/os2/widget.rc => widget/os2/widget.rc
rename : widget/src/qt/Makefile.in => widget/qt/Makefile.in
rename : widget/src/qt/faststartupqt/Makefile.in => widget/qt/faststartupqt/Makefile.in
rename : widget/src/qt/faststartupqt/mozqwidgetfast.cpp => widget/qt/faststartupqt/mozqwidgetfast.cpp
rename : widget/src/qt/faststartupqt/mozqwidgetfast.h => widget/qt/faststartupqt/mozqwidgetfast.h
rename : widget/src/qt/faststartupqt/nsFastStartupQt.cpp => widget/qt/faststartupqt/nsFastStartupQt.cpp
rename : widget/src/qt/faststartupqt/nsFastStartupQt.h => widget/qt/faststartupqt/nsFastStartupQt.h
rename : widget/src/qt/mozSwipeGesture.cpp => widget/qt/mozSwipeGesture.cpp
rename : widget/src/qt/mozSwipeGesture.h => widget/qt/mozSwipeGesture.h
rename : widget/src/qt/moziqwidget.h => widget/qt/moziqwidget.h
rename : widget/src/qt/mozqorientationsensorfilter.cpp => widget/qt/mozqorientationsensorfilter.cpp
rename : widget/src/qt/mozqorientationsensorfilter.h => widget/qt/mozqorientationsensorfilter.h
rename : widget/src/qt/mozqwidget.cpp => widget/qt/mozqwidget.cpp
rename : widget/src/qt/mozqwidget.h => widget/qt/mozqwidget.h
rename : widget/src/qt/nsAppShell.cpp => widget/qt/nsAppShell.cpp
rename : widget/src/qt/nsAppShell.h => widget/qt/nsAppShell.h
rename : widget/src/qt/nsBidiKeyboard.cpp => widget/qt/nsBidiKeyboard.cpp
rename : widget/src/qt/nsBidiKeyboard.h => widget/qt/nsBidiKeyboard.h
rename : widget/src/qt/nsClipboard.cpp => widget/qt/nsClipboard.cpp
rename : widget/src/qt/nsClipboard.h => widget/qt/nsClipboard.h
rename : widget/src/qt/nsCommonWidget.cpp => widget/qt/nsCommonWidget.cpp
rename : widget/src/qt/nsCommonWidget.h => widget/qt/nsCommonWidget.h
rename : widget/src/qt/nsDeviceContextSpecQt.cpp => widget/qt/nsDeviceContextSpecQt.cpp
rename : widget/src/qt/nsDeviceContextSpecQt.h => widget/qt/nsDeviceContextSpecQt.h
rename : widget/src/qt/nsDragService.cpp => widget/qt/nsDragService.cpp
rename : widget/src/qt/nsDragService.h => widget/qt/nsDragService.h
rename : widget/src/qt/nsFilePicker.cpp => widget/qt/nsFilePicker.cpp
rename : widget/src/qt/nsFilePicker.h => widget/qt/nsFilePicker.h
rename : widget/src/qt/nsIdleServiceQt.cpp => widget/qt/nsIdleServiceQt.cpp
rename : widget/src/qt/nsIdleServiceQt.h => widget/qt/nsIdleServiceQt.h
rename : widget/src/qt/nsLookAndFeel.cpp => widget/qt/nsLookAndFeel.cpp
rename : widget/src/qt/nsLookAndFeel.h => widget/qt/nsLookAndFeel.h
rename : widget/src/qt/nsMFilePicker.cpp => widget/qt/nsMFilePicker.cpp
rename : widget/src/qt/nsMFilePicker.h => widget/qt/nsMFilePicker.h
rename : widget/src/qt/nsNativeThemeQt.cpp => widget/qt/nsNativeThemeQt.cpp
rename : widget/src/qt/nsNativeThemeQt.h => widget/qt/nsNativeThemeQt.h
rename : widget/src/qt/nsPrintDialogQt.cpp => widget/qt/nsPrintDialogQt.cpp
rename : widget/src/qt/nsPrintDialogQt.h => widget/qt/nsPrintDialogQt.h
rename : widget/src/qt/nsPrintOptionsQt.cpp => widget/qt/nsPrintOptionsQt.cpp
rename : widget/src/qt/nsPrintOptionsQt.h => widget/qt/nsPrintOptionsQt.h
rename : widget/src/qt/nsPrintSettingsQt.cpp => widget/qt/nsPrintSettingsQt.cpp
rename : widget/src/qt/nsPrintSettingsQt.h => widget/qt/nsPrintSettingsQt.h
rename : widget/src/qt/nsQtKeyUtils.cpp => widget/qt/nsQtKeyUtils.cpp
rename : widget/src/qt/nsQtKeyUtils.h => widget/qt/nsQtKeyUtils.h
rename : widget/src/qt/nsScreenManagerQt.cpp => widget/qt/nsScreenManagerQt.cpp
rename : widget/src/qt/nsScreenManagerQt.h => widget/qt/nsScreenManagerQt.h
rename : widget/src/qt/nsScreenQt.cpp => widget/qt/nsScreenQt.cpp
rename : widget/src/qt/nsScreenQt.h => widget/qt/nsScreenQt.h
rename : widget/src/qt/nsSound.cpp => widget/qt/nsSound.cpp
rename : widget/src/qt/nsSound.h => widget/qt/nsSound.h
rename : widget/src/qt/nsWidgetFactory.cpp => widget/qt/nsWidgetFactory.cpp
rename : widget/src/qt/nsWindow.cpp => widget/qt/nsWindow.cpp
rename : widget/src/qt/nsWindow.h => widget/qt/nsWindow.h
rename : widget/src/shared/Makefile.in => widget/shared/Makefile.in
rename : widget/src/shared/WidgetUtils.cpp => widget/shared/WidgetUtils.cpp
rename : widget/src/shared/WidgetUtils.h => widget/shared/WidgetUtils.h
rename : widget/src/shared/nsShmImage.cpp => widget/shared/nsShmImage.cpp
rename : widget/src/shared/nsShmImage.h => widget/shared/nsShmImage.h
rename : widget/src/shared/x11/Makefile.in => widget/shared/x11/Makefile.in
rename : widget/src/shared/x11/keysym2ucs.c => widget/shared/x11/keysym2ucs.c
rename : widget/src/shared/x11/keysym2ucs.h => widget/shared/x11/keysym2ucs.h
rename : widget/src/windows/AudioSession.cpp => widget/windows/AudioSession.cpp
rename : widget/src/windows/AudioSession.h => widget/windows/AudioSession.h
rename : widget/src/windows/GfxInfo.cpp => widget/windows/GfxInfo.cpp
rename : widget/src/windows/GfxInfo.h => widget/windows/GfxInfo.h
rename : widget/src/windows/IEnumFE.cpp => widget/windows/IEnumFE.cpp
rename : widget/src/windows/IEnumFE.h => widget/windows/IEnumFE.h
rename : widget/src/windows/JumpListBuilder.cpp => widget/windows/JumpListBuilder.cpp
rename : widget/src/windows/JumpListBuilder.h => widget/windows/JumpListBuilder.h
rename : widget/src/windows/JumpListItem.cpp => widget/windows/JumpListItem.cpp
rename : widget/src/windows/JumpListItem.h => widget/windows/JumpListItem.h
rename : widget/src/windows/KeyboardLayout.cpp => widget/windows/KeyboardLayout.cpp
rename : widget/src/windows/KeyboardLayout.h => widget/windows/KeyboardLayout.h
rename : widget/src/windows/LSPAnnotator.cpp => widget/windows/LSPAnnotator.cpp
rename : widget/src/windows/Makefile.in => widget/windows/Makefile.in
rename : widget/src/windows/TaskbarPreview.cpp => widget/windows/TaskbarPreview.cpp
rename : widget/src/windows/TaskbarPreview.h => widget/windows/TaskbarPreview.h
rename : widget/src/windows/TaskbarPreviewButton.cpp => widget/windows/TaskbarPreviewButton.cpp
rename : widget/src/windows/TaskbarPreviewButton.h => widget/windows/TaskbarPreviewButton.h
rename : widget/src/windows/TaskbarTabPreview.cpp => widget/windows/TaskbarTabPreview.cpp
rename : widget/src/windows/TaskbarTabPreview.h => widget/windows/TaskbarTabPreview.h
rename : widget/src/windows/TaskbarWindowPreview.cpp => widget/windows/TaskbarWindowPreview.cpp
rename : widget/src/windows/TaskbarWindowPreview.h => widget/windows/TaskbarWindowPreview.h
rename : widget/src/windows/WidgetTraceEvent.cpp => widget/windows/WidgetTraceEvent.cpp
rename : widget/src/windows/WinTaskbar.cpp => widget/windows/WinTaskbar.cpp
rename : widget/src/windows/WinTaskbar.h => widget/windows/WinTaskbar.h
rename : widget/src/windows/WindowHook.cpp => widget/windows/WindowHook.cpp
rename : widget/src/windows/WindowHook.h => widget/windows/WindowHook.h
rename : widget/src/windows/nsAppShell.cpp => widget/windows/nsAppShell.cpp
rename : widget/src/windows/nsAppShell.h => widget/windows/nsAppShell.h
rename : widget/src/windows/nsBidiKeyboard.cpp => widget/windows/nsBidiKeyboard.cpp
rename : widget/src/windows/nsBidiKeyboard.h => widget/windows/nsBidiKeyboard.h
rename : widget/src/windows/nsClipboard.cpp => widget/windows/nsClipboard.cpp
rename : widget/src/windows/nsClipboard.h => widget/windows/nsClipboard.h
rename : widget/src/windows/nsDataObj.cpp => widget/windows/nsDataObj.cpp
rename : widget/src/windows/nsDataObj.h => widget/windows/nsDataObj.h
rename : widget/src/windows/nsDataObjCollection.cpp => widget/windows/nsDataObjCollection.cpp
rename : widget/src/windows/nsDataObjCollection.h => widget/windows/nsDataObjCollection.h
rename : widget/src/windows/nsDeviceContextSpecWin.cpp => widget/windows/nsDeviceContextSpecWin.cpp
rename : widget/src/windows/nsDeviceContextSpecWin.h => widget/windows/nsDeviceContextSpecWin.h
rename : widget/src/windows/nsDragService.cpp => widget/windows/nsDragService.cpp
rename : widget/src/windows/nsDragService.h => widget/windows/nsDragService.h
rename : widget/src/windows/nsFilePicker.cpp => widget/windows/nsFilePicker.cpp
rename : widget/src/windows/nsFilePicker.h => widget/windows/nsFilePicker.h
rename : widget/src/windows/nsIMM32Handler.cpp => widget/windows/nsIMM32Handler.cpp
rename : widget/src/windows/nsIMM32Handler.h => widget/windows/nsIMM32Handler.h
rename : widget/src/windows/nsIdleServiceWin.cpp => widget/windows/nsIdleServiceWin.cpp
rename : widget/src/windows/nsIdleServiceWin.h => widget/windows/nsIdleServiceWin.h
rename : widget/src/windows/nsImageClipboard.cpp => widget/windows/nsImageClipboard.cpp
rename : widget/src/windows/nsImageClipboard.h => widget/windows/nsImageClipboard.h
rename : widget/src/windows/nsLookAndFeel.cpp => widget/windows/nsLookAndFeel.cpp
rename : widget/src/windows/nsLookAndFeel.h => widget/windows/nsLookAndFeel.h
rename : widget/src/windows/nsNativeDragSource.cpp => widget/windows/nsNativeDragSource.cpp
rename : widget/src/windows/nsNativeDragSource.h => widget/windows/nsNativeDragSource.h
rename : widget/src/windows/nsNativeDragTarget.cpp => widget/windows/nsNativeDragTarget.cpp
rename : widget/src/windows/nsNativeDragTarget.h => widget/windows/nsNativeDragTarget.h
rename : widget/src/windows/nsNativeThemeWin.cpp => widget/windows/nsNativeThemeWin.cpp
rename : widget/src/windows/nsNativeThemeWin.h => widget/windows/nsNativeThemeWin.h
rename : widget/src/windows/nsPrintOptionsWin.cpp => widget/windows/nsPrintOptionsWin.cpp
rename : widget/src/windows/nsPrintOptionsWin.h => widget/windows/nsPrintOptionsWin.h
rename : widget/src/windows/nsPrintSettingsWin.cpp => widget/windows/nsPrintSettingsWin.cpp
rename : widget/src/windows/nsPrintSettingsWin.h => widget/windows/nsPrintSettingsWin.h
rename : widget/src/windows/nsScreenManagerWin.cpp => widget/windows/nsScreenManagerWin.cpp
rename : widget/src/windows/nsScreenManagerWin.h => widget/windows/nsScreenManagerWin.h
rename : widget/src/windows/nsScreenWin.cpp => widget/windows/nsScreenWin.cpp
rename : widget/src/windows/nsScreenWin.h => widget/windows/nsScreenWin.h
rename : widget/src/windows/nsSound.cpp => widget/windows/nsSound.cpp
rename : widget/src/windows/nsSound.h => widget/windows/nsSound.h
rename : widget/src/windows/nsTextStore.cpp => widget/windows/nsTextStore.cpp
rename : widget/src/windows/nsTextStore.h => widget/windows/nsTextStore.h
rename : widget/src/windows/nsToolkit.cpp => widget/windows/nsToolkit.cpp
rename : widget/src/windows/nsToolkit.h => widget/windows/nsToolkit.h
rename : widget/src/windows/nsUXThemeConstants.h => widget/windows/nsUXThemeConstants.h
rename : widget/src/windows/nsUXThemeData.cpp => widget/windows/nsUXThemeData.cpp
rename : widget/src/windows/nsUXThemeData.h => widget/windows/nsUXThemeData.h
rename : widget/src/windows/nsWinGesture.cpp => widget/windows/nsWinGesture.cpp
rename : widget/src/windows/nsWinGesture.h => widget/windows/nsWinGesture.h
rename : widget/src/windows/nsWindow.cpp => widget/windows/nsWindow.cpp
rename : widget/src/windows/nsWindow.h => widget/windows/nsWindow.h
rename : widget/src/windows/nsWindowDbg.cpp => widget/windows/nsWindowDbg.cpp
rename : widget/src/windows/nsWindowDbg.h => widget/windows/nsWindowDbg.h
rename : widget/src/windows/nsWindowDefs.h => widget/windows/nsWindowDefs.h
rename : widget/src/windows/nsWindowGfx.cpp => widget/windows/nsWindowGfx.cpp
rename : widget/src/windows/nsWindowGfx.h => widget/windows/nsWindowGfx.h
rename : widget/src/windows/nsdefs.h => widget/windows/nsdefs.h
rename : widget/src/windows/resource.h => widget/windows/resource.h
rename : widget/src/windows/tests/Makefile.in => widget/windows/tests/Makefile.in
rename : widget/src/windows/tests/TestWinDND.cpp => widget/windows/tests/TestWinDND.cpp
rename : widget/src/xpwidgets/GfxDriverInfo.cpp => widget/xpwidgets/GfxDriverInfo.cpp
rename : widget/src/xpwidgets/GfxDriverInfo.h => widget/xpwidgets/GfxDriverInfo.h
rename : widget/src/xpwidgets/GfxInfoBase.cpp => widget/xpwidgets/GfxInfoBase.cpp
rename : widget/src/xpwidgets/GfxInfoBase.h => widget/xpwidgets/GfxInfoBase.h
rename : widget/src/xpwidgets/GfxInfoCollector.h => widget/xpwidgets/GfxInfoCollector.h
rename : widget/src/xpwidgets/GfxInfoWebGL.cpp => widget/xpwidgets/GfxInfoWebGL.cpp
rename : widget/src/xpwidgets/GfxInfoWebGL.h => widget/xpwidgets/GfxInfoWebGL.h
rename : widget/src/xpwidgets/GfxInfoX11.cpp => widget/xpwidgets/GfxInfoX11.cpp
rename : widget/src/xpwidgets/GfxInfoX11.h => widget/xpwidgets/GfxInfoX11.h
rename : widget/src/xpwidgets/Makefile.in => widget/xpwidgets/Makefile.in
rename : widget/src/xpwidgets/PuppetWidget.cpp => widget/xpwidgets/PuppetWidget.cpp
rename : widget/src/xpwidgets/PuppetWidget.h => widget/xpwidgets/PuppetWidget.h
rename : widget/src/xpwidgets/nsAppShellSingleton.h => widget/xpwidgets/nsAppShellSingleton.h
rename : widget/src/xpwidgets/nsBaseAppShell.cpp => widget/xpwidgets/nsBaseAppShell.cpp
rename : widget/src/xpwidgets/nsBaseAppShell.h => widget/xpwidgets/nsBaseAppShell.h
rename : widget/src/xpwidgets/nsBaseClipboard.cpp => widget/xpwidgets/nsBaseClipboard.cpp
rename : widget/src/xpwidgets/nsBaseClipboard.h => widget/xpwidgets/nsBaseClipboard.h
rename : widget/src/xpwidgets/nsBaseDragService.cpp => widget/xpwidgets/nsBaseDragService.cpp
rename : widget/src/xpwidgets/nsBaseDragService.h => widget/xpwidgets/nsBaseDragService.h
rename : widget/src/xpwidgets/nsBaseFilePicker.cpp => widget/xpwidgets/nsBaseFilePicker.cpp
rename : widget/src/xpwidgets/nsBaseFilePicker.h => widget/xpwidgets/nsBaseFilePicker.h
rename : widget/src/xpwidgets/nsBaseWidget.cpp => widget/xpwidgets/nsBaseWidget.cpp
rename : widget/src/xpwidgets/nsBaseWidget.h => widget/xpwidgets/nsBaseWidget.h
rename : widget/src/xpwidgets/nsClipboardHelper.cpp => widget/xpwidgets/nsClipboardHelper.cpp
rename : widget/src/xpwidgets/nsClipboardHelper.h => widget/xpwidgets/nsClipboardHelper.h
rename : widget/src/xpwidgets/nsClipboardPrivacyHandler.cpp => widget/xpwidgets/nsClipboardPrivacyHandler.cpp
rename : widget/src/xpwidgets/nsClipboardPrivacyHandler.h => widget/xpwidgets/nsClipboardPrivacyHandler.h
rename : widget/src/xpwidgets/nsFilePickerProxy.cpp => widget/xpwidgets/nsFilePickerProxy.cpp
rename : widget/src/xpwidgets/nsFilePickerProxy.h => widget/xpwidgets/nsFilePickerProxy.h
rename : widget/src/xpwidgets/nsHTMLFormatConverter.cpp => widget/xpwidgets/nsHTMLFormatConverter.cpp
rename : widget/src/xpwidgets/nsHTMLFormatConverter.h => widget/xpwidgets/nsHTMLFormatConverter.h
rename : widget/src/xpwidgets/nsIdleService.cpp => widget/xpwidgets/nsIdleService.cpp
rename : widget/src/xpwidgets/nsIdleService.h => widget/xpwidgets/nsIdleService.h
rename : widget/src/xpwidgets/nsNativeTheme.cpp => widget/xpwidgets/nsNativeTheme.cpp
rename : widget/src/xpwidgets/nsNativeTheme.h => widget/xpwidgets/nsNativeTheme.h
rename : widget/src/xpwidgets/nsPrimitiveHelpers.cpp => widget/xpwidgets/nsPrimitiveHelpers.cpp
rename : widget/src/xpwidgets/nsPrimitiveHelpers.h => widget/xpwidgets/nsPrimitiveHelpers.h
rename : widget/src/xpwidgets/nsPrintOptionsImpl.cpp => widget/xpwidgets/nsPrintOptionsImpl.cpp
rename : widget/src/xpwidgets/nsPrintOptionsImpl.h => widget/xpwidgets/nsPrintOptionsImpl.h
rename : widget/src/xpwidgets/nsPrintSession.cpp => widget/xpwidgets/nsPrintSession.cpp
rename : widget/src/xpwidgets/nsPrintSession.h => widget/xpwidgets/nsPrintSession.h
rename : widget/src/xpwidgets/nsPrintSettingsImpl.cpp => widget/xpwidgets/nsPrintSettingsImpl.cpp
rename : widget/src/xpwidgets/nsPrintSettingsImpl.h => widget/xpwidgets/nsPrintSettingsImpl.h
rename : widget/src/xpwidgets/nsTransferable.cpp => widget/xpwidgets/nsTransferable.cpp
rename : widget/src/xpwidgets/nsTransferable.h => widget/xpwidgets/nsTransferable.h
rename : widget/src/xpwidgets/nsXPLookAndFeel.cpp => widget/xpwidgets/nsXPLookAndFeel.cpp
rename : widget/src/xpwidgets/nsXPLookAndFeel.h => widget/xpwidgets/nsXPLookAndFeel.h
rename : widget/src/xremoteclient/Makefile.in => widget/xremoteclient/Makefile.in
rename : widget/src/xremoteclient/XRemoteClient.cpp => widget/xremoteclient/XRemoteClient.cpp
rename : widget/src/xremoteclient/XRemoteClient.h => widget/xremoteclient/XRemoteClient.h
rename : widget/src/xremoteclient/XRemoteClientFactory.cpp => widget/xremoteclient/XRemoteClientFactory.cpp
rename : widget/src/xremoteclient/mozilla-xremote-client.cpp => widget/xremoteclient/mozilla-xremote-client.cpp
rename : widget/src/xremoteclient/nsRemoteClient.h => widget/xremoteclient/nsRemoteClient.h
2012-01-03 22:09:29 -05:00

1266 lines
36 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is OS/2 Remote Workplace Server interface.
*
* The Initial Developer of the Original Code is
* Richard L Walsh.
* Portions created by the Initial Developer are Copyright (C) 2005
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
//------------------------------------------------------------------------
#include "nsIFile.h"
#include "mozilla/ModuleUtils.h"
#include "nsIObserver.h"
#include "nsIObserverService.h"
#include "nsDirectoryServiceDefs.h"
#include "nsLiteralString.h"
#include "nsReadableUtils.h"
#include "nsIStringBundle.h"
#include "mozilla/Services.h"
#define INCL_WIN
#define INCL_DOS
#include <os2.h>
// nsRwsService must be included _after_ os2.h
#include "nsRwsService.h"
#include "rwserr.h"
#include "nsOS2Uni.h"
#include "prenv.h"
#include <stdio.h>
//------------------------------------------------------------------------
// debug macros
//------------------------------------------------------------------------
#ifdef DEBUG
#define RWS_DEBUG
#endif
// use this to force debug msgs in non-debug builds
//#ifndef RWS_DEBUG
// #define RWS_DEBUG
//#endif
#ifdef RWS_DEBUG
#define ERRMSG(x,y) { printf(y " failed - rc= %d\n", (int)x); }
#define ERRBREAK(x,y) if (x) { ERRMSG(x,y); break; }
#define ERRPRINTF(x,y) { printf(y "\n", x); }
#else
#define ERRMSG(x,y) ;
#define ERRBREAK(x,y) if (x) break;
#define ERRPRINTF(x,y) ;
#endif
//------------------------------------------------------------------------
// function prototypes
//------------------------------------------------------------------------
static nsresult IsDescendedFrom(PRUint32 wpsFilePtr, const char *pszClassname);
static nsresult CreateFileForExtension(const char *aFileExt, nsACString& aPath);
static nsresult DeleteFileForExtension(const char *aPath);
static void AssignNLSString(const PRUnichar *aKey, nsAString& _retval);
static nsresult AssignTitleString(const char *aTitle, nsAString& result);
//------------------------------------------------------------------------
// module-level variables - not declared as members of nsRws
//------------------------------------------------------------------------
static nsRwsService *sRwsInstance = 0; // our singleton instance
static bool sInit = FALSE; // have we tried to load RWS
// RWS administrative functions
static ULONG (* _System sRwsClientInit)(BOOL);
static ULONG (* _System sRwsGetTimeout)(PULONG, PULONG);
static ULONG (* _System sRwsSetTimeout)(ULONG);
static ULONG (* _System sRwsClientTerminate)(void);
// RWS task-oriented functions
static ULONG (* _System sRwsCall)(PRWSHDR*, ULONG, ULONG, ULONG, ULONG, ULONG, ...);
static ULONG (* _System sRwsCallIndirect)(PRWSBLD);
static ULONG (* _System sRwsFreeMem)(PRWSHDR);
static ULONG (* _System sRwsGetResult)(PRWSHDR, ULONG, PULONG);
static ULONG (* _System sRwsGetArgPtr)(PRWSHDR, ULONG, PRWSDSC*);
//------------------------------------------------------------------------
// ExtCache - caches the default icons & handlers for file extensions
//------------------------------------------------------------------------
typedef struct _ExtInfo
{
char ext[8];
PRUint32 icon;
PRUint32 mini;
PRUint32 handler;
PRUnichar *title;
} ExtInfo;
#define kGrowBy 8
#define kMutexTimeout 500
class ExtCache
{
public:
ExtCache();
~ExtCache();
nsresult GetIcon(const char *aExt, bool aNeedMini, PRUint32 *oIcon);
nsresult SetIcon(const char *aExt, bool aIsMini, PRUint32 aIcon);
nsresult GetHandler(const char *aExt, PRUint32 *oHandle, nsAString& oTitle);
nsresult SetHandler(const char *aExt, PRUint32 aHandle, nsAString& aTitle);
void EmptyCache();
protected:
ExtInfo *FindExtension(const char *aExt, bool aSet = false);
PRUint32 mPid;
PRUint32 mMutex;
PRUint32 mCount;
PRUint32 mSize;
ExtInfo *mExtInfo;
};
//------------------------------------------------------------------------
// nsIRwsService implementation
//------------------------------------------------------------------------
NS_IMPL_ISUPPORTS2(nsRwsService, nsIRwsService, nsIObserver)
nsRwsService::nsRwsService()
{
mExtCache = new ExtCache();
if (!mExtCache)
ERRPRINTF("", "nsRwsService - unable to allocate mExtArray%s");
}
nsRwsService::~nsRwsService()
{
}
//------------------------------------------------------------------------
// provides the default icon associated with a given extension; if the
// icon isn't in the cache, it creates a temp file with that extension,
// retrieves its icon, deletes the temp file, then caches the icon
NS_IMETHODIMP
nsRwsService::IconFromExtension(const char *aExt, bool aNeedMini,
PRUint32 *_retval)
{
if (!aExt || !*aExt || !_retval)
return NS_ERROR_INVALID_ARG;
nsresult rv = mExtCache->GetIcon(aExt, aNeedMini, _retval);
if (NS_SUCCEEDED(rv))
return rv;
nsCAutoString path;
rv = CreateFileForExtension(aExt, path);
if (NS_SUCCEEDED(rv)) {
rv = IconFromPath(path.get(), false, aNeedMini, _retval);
DeleteFileForExtension(path.get());
if (NS_SUCCEEDED(rv))
mExtCache->SetIcon(aExt, aNeedMini, *_retval);
}
return rv;
}
//------------------------------------------------------------------------
// retrieves an object's icon using its fully-qualified path; aAbstract
// indicates whether this is a Filesystem object or an Abstract or
// Transient object; locating non-file objects is fairly expensive
NS_IMETHODIMP
nsRwsService::IconFromPath(const char *aPath, bool aAbstract,
bool aNeedMini, PRUint32 *_retval)
{
if (!aPath || !*aPath || !_retval)
return NS_ERROR_INVALID_ARG;
PRUint32 rwsType;
if (aAbstract)
rwsType = (aNeedMini ? RWSC_OFTITLE_OMINI : RWSC_OFTITLE_OICON);
else
rwsType = (aNeedMini ? RWSC_OPATH_OMINI : RWSC_OPATH_OICON);
return RwsConvert(rwsType, (PRUint32)aPath, _retval);
}
//------------------------------------------------------------------------
// retrieve's an object's icon using its persistent handle
NS_IMETHODIMP
nsRwsService::IconFromHandle(PRUint32 aHandle, bool aNeedMini,
PRUint32 *_retval)
{
if (!aHandle || !_retval)
return NS_ERROR_INVALID_ARG;
return RwsConvert( (aNeedMini ? RWSC_OHNDL_OMINI : RWSC_OHNDL_OICON),
aHandle, _retval);
}
//------------------------------------------------------------------------
// retrieve's an object's title using its persistent handle
NS_IMETHODIMP
nsRwsService::TitleFromHandle(PRUint32 aHandle, nsAString& _retval)
{
if (!aHandle)
return NS_ERROR_INVALID_ARG;
return RwsConvert(RWSC_OHNDL_OTITLE, aHandle, _retval);
}
//------------------------------------------------------------------------
// provides the default handler associated with a given extension; if the
// info isn't in the cache, it creates a temp file with that extension,
// retrieves the handler's title & possibly its object handle, deletes the
// temp file, then caches the info.
NS_IMETHODIMP
nsRwsService::HandlerFromExtension(const char *aExt, PRUint32 *aHandle,
nsAString& _retval)
{
if (!aExt || !*aExt || !aHandle)
return NS_ERROR_INVALID_ARG;
nsresult rv = mExtCache->GetHandler(aExt, aHandle, _retval);
if (NS_SUCCEEDED(rv))
return rv;
nsCAutoString path;
rv = CreateFileForExtension(aExt, path);
if (NS_SUCCEEDED(rv)) {
rv = HandlerFromPath(path.get(), aHandle, _retval);
DeleteFileForExtension(path.get());
if (NS_SUCCEEDED(rv))
mExtCache->SetHandler(aExt, *aHandle, _retval);
}
return rv;
}
//------------------------------------------------------------------------
// identifies the default WPS handler for a given file; if the handler
// is an associated program, returns its title & object handle; if the
// handler is an integrated class viewer or player, it constructs a title
// and sets the object handle to zero
NS_IMETHODIMP
nsRwsService::HandlerFromPath(const char *aPath, PRUint32 *aHandle,
nsAString& _retval)
{
if (!aPath || !*aPath || !aHandle)
return NS_ERROR_INVALID_ARG;
nsresult rv = NS_ERROR_FAILURE;
PRWSHDR pHdr = 0;
PRUint32 rc;
_retval.Truncate();
*aHandle = 0;
// this dummy do{...}while(0) loop lets us bail out early
// while ensuring pHdr gets freed
do {
// get the default view for this file
rc = sRwsCall(&pHdr,
RWSP_MNAM, (ULONG)"wpQueryDefaultView",
RWSR_ASIS, 0, 1,
RWSI_OPATH, 0, (ULONG)aPath);
ERRBREAK(rc, "wpQueryDefaultView")
PRUint32 defView = sRwsGetResult(pHdr, 0, 0);
if (defView == (PRUint32)-1)
break;
// if the default view is OPEN_SETTINGS ('2'),
// change it to OPEN_RUNNING ('4')
if (defView == 2)
defView = 4;
// to improve efficiency, retrieve & reuse the file's wpObject
// ptr rather than repeatedly converting the name to an object
PRUint32 wpsFilePtr = sRwsGetResult(pHdr, 1, 0);
// free pHdr before the next call
sRwsFreeMem(pHdr);
pHdr = 0;
// for default view values less than OPEN_USER, see if there
// is a program or program object associated with this file
if (defView < 0x6500) {
rc = sRwsCall(&pHdr,
RWSP_MNAM, (ULONG)"wpQueryAssociatedProgram",
RWSR_OHNDL, 0, 6,
RWSI_ASIS, 0, wpsFilePtr,
RWSI_ASIS, 0, defView,
RWSI_PULONG, 0, 0,
RWSI_PBUF, 32, 0,
RWSI_ASIS, 0, 32,
RWSI_ASIS, 0, (ULONG)-1);
// if there's no associated program, create dummy values
// (if chosen, the WPS will open the file's Properties notebook)
if (rc) {
if (rc == RWSSRV_FUNCTIONFAILED) {
*aHandle = 0;
AssignNLSString(NS_LITERAL_STRING("wpsDefaultOS2").get(), _retval);
rv = NS_OK;
}
else
ERRMSG(rc, "wpQueryAssociatedProgram")
break;
}
// get a ptr to the return value's data structure; then get
// both the object handle we requested & the raw WPS object ptr
PRWSDSC pRtn;
rc = sRwsGetArgPtr(pHdr, 0, &pRtn);
ERRBREAK(rc, "GetArgPtr")
*aHandle = *((PRUint32*)pRtn->pget);
PRUint32 wpsPgmPtr = pRtn->value;
// free pHdr before the next call
sRwsFreeMem(pHdr);
pHdr = 0;
// convert the object to its title (using Rws' conversion
// feature is more efficient than calling wpQueryTitle)
rc = sRwsCall(&pHdr,
RWSP_CONV, 0,
RWSR_ASIS, 0, 1,
RWSC_OBJ_OTITLE, 0, wpsPgmPtr);
ERRBREAK(rc, "convert pgm object to title")
// retrieve the title, massage it & assign to _retval, then exit
// N.B. no need to free pHdr here, it will be freed below
char *pszTitle = (char*)sRwsGetResult(pHdr, 1, 0);
if (pszTitle != (char*)-1)
rv = AssignTitleString(pszTitle, _retval);
break;
}
// the default view is provided by the file's WPS class;
// in this case, *aHandle is 0
// see if it's a known view that can be given a meaningful name
switch (defView) {
case 0xbc2b: {
rv = IsDescendedFrom(wpsFilePtr, "MMImage");
if (NS_SUCCEEDED(rv))
AssignNLSString(NS_LITERAL_STRING("mmImageViewerOS2").get(), _retval);
break;
}
case 0xbc0d: // Audio editor
case 0xbc21: // Video editor
case 0xbc17: // Midi editor
case 0xbbef: // Play
case 0xbbe5: { // Player
rv = IsDescendedFrom(wpsFilePtr, "MMAudio");
if (NS_SUCCEEDED(rv)) {
AssignNLSString(NS_LITERAL_STRING("mmAudioPlayerOS2").get(), _retval);
break;
}
rv = IsDescendedFrom(wpsFilePtr, "MMVideo");
if (NS_SUCCEEDED(rv)) {
AssignNLSString(NS_LITERAL_STRING("mmVideoPlayerOS2").get(), _retval);
break;
}
rv = IsDescendedFrom(wpsFilePtr, "MMMIDI");
if (NS_SUCCEEDED(rv))
AssignNLSString(NS_LITERAL_STRING("mmMidiPlayerOS2").get(), _retval);
break;
}
case 0x7701: {
rv = IsDescendedFrom(wpsFilePtr, "TSArcMgr");
if (NS_SUCCEEDED(rv))
AssignNLSString(NS_LITERAL_STRING("odZipFolderOS2").get(), _retval);
break;
}
// this has to go last because TSEnhDataFile replaces
// WPDataFile; if present, all data files are descended from it
case 0xb742:
case 0xa742: {
rv = IsDescendedFrom(wpsFilePtr, "TSEnhDataFile");
if (NS_SUCCEEDED(rv))
AssignNLSString(NS_LITERAL_STRING("odTextViewOS2").get(), _retval);
break;
}
} // end switch
if (NS_SUCCEEDED(rv))
break;
// the name of this view is unknown, so create a generic name
// (i.e. "Viewer for Class WPSomething")
// use the file's object ptr to get the name of its class
rc = sRwsCall(&pHdr,
RWSP_CONV, 0,
RWSR_ASIS, 0, 1,
RWSC_OBJ_CNAME, 0, wpsFilePtr);
ERRBREAK(rc, "convert object to classname")
char *pszTitle = (char*)sRwsGetResult(pHdr, 1, 0);
if (pszTitle == (char*)-1)
break;
nsAutoChar16Buffer buffer;
PRInt32 bufLength;
rv = MultiByteToWideChar(0, pszTitle, strlen(pszTitle),
buffer, bufLength);
if (NS_FAILED(rv))
break;
nsAutoString classViewer;
AssignNLSString(NS_LITERAL_STRING("classViewerOS2").get(), classViewer);
int pos = -1;
if ((pos = classViewer.Find("%S")) > -1)
classViewer.Replace(pos, 2, buffer.Elements());
_retval.Assign(classViewer);
rv = NS_OK;
} while (0);
// free the pHdr allocated by the final call
sRwsFreeMem(pHdr);
return rv;
}
//------------------------------------------------------------------------
// retrieves an object's menu using its fully-qualified path; aAbstract
// indicates whether this is a Filesystem object or an Abstract or
// Transient object; locating non-file objects is fairly expensive
NS_IMETHODIMP
nsRwsService::MenuFromPath(const char *aPath, bool aAbstract)
{
if (!aPath || !*aPath)
return NS_ERROR_INVALID_ARG;
nsresult rv = NS_ERROR_FAILURE;
PRWSHDR pHdr = 0;
PRUint32 type = (aAbstract ? RWSI_OFTITLE : RWSI_OPATH);
PRUint32 rc;
POINTL ptl;
HWND hTgt = 0;
// try to identify the window where the click occurred
if (WinQueryMsgPos(0, &ptl)) {
hTgt = WinQueryFocus(HWND_DESKTOP);
if (hTgt)
WinMapWindowPoints(HWND_DESKTOP, hTgt, &ptl, 1);
}
// if we have the window & coordinates, use them; otherwise,
// let RWS position the menu at the current pointer position
// (specifying the window ensures the focus will return to it)
if (hTgt)
rc = sRwsCall(&pHdr,
RWSP_CMD, RWSCMD_POPUPMENU,
RWSR_ASIS, 0, 3,
type, 0, (ULONG)aPath,
RWSI_ASIS, 0, hTgt,
RWSI_PBUF, sizeof(POINTL), (ULONG)&ptl);
else
rc = sRwsCall(&pHdr,
RWSP_CMD, RWSCMD_POPUPMENU,
RWSR_ASIS, 0, 3,
type, 0, (ULONG)aPath,
RWSI_ASIS, 0, 0,
RWSI_ASIS, 0, 0);
if (rc)
ERRMSG(rc, "RWSCMD_POPUPMENU")
else
rv = NS_OK;
// free pHdr
sRwsFreeMem(pHdr);
return rv;
}
//------------------------------------------------------------------------
// causes the WPS to open a file using the program specified by AppPath;
// this is identical to dropping the file on the program's WPS icon
NS_IMETHODIMP
nsRwsService::OpenWithAppHandle(const char *aFilePath, PRUint32 aAppHandle)
{
if (!aFilePath || !*aFilePath || !aAppHandle)
return NS_ERROR_INVALID_ARG;
nsresult rv = NS_ERROR_FAILURE;
PRWSHDR pHdr = 0;
PRUint32 rc;
rc = sRwsCall(&pHdr,
RWSP_CMD, RWSCMD_OPENUSING,
RWSR_ASIS, 0, 2,
RWSI_OPATH, 0, aFilePath,
RWSI_OHNDL, 0, aAppHandle);
if (rc)
ERRMSG(rc, "RWSCMD_OPENUSING")
else
rv = NS_OK;
sRwsFreeMem(pHdr);
return rv;
}
//------------------------------------------------------------------------
// causes the WPS to open a file using the program specified by AppPath;
// this is identical to dropping the file on the program's WPS icon
NS_IMETHODIMP
nsRwsService::OpenWithAppPath(const char *aFilePath, const char *aAppPath)
{
if (!aFilePath || !*aFilePath || !aAppPath || !*aAppPath)
return NS_ERROR_INVALID_ARG;
nsresult rv = NS_ERROR_FAILURE;
PRWSHDR pHdr = 0;
PRUint32 rc;
rc = sRwsCall(&pHdr,
RWSP_CMD, RWSCMD_OPENUSING,
RWSR_ASIS, 0, 2,
RWSI_OPATH, 0, aFilePath,
RWSI_OPATH, 0, aAppPath);
if (rc)
ERRMSG(rc, "RWSCMD_OPENUSING")
else
rv = NS_OK;
sRwsFreeMem(pHdr);
return rv;
}
//------------------------------------------------------------------------
// nsRwsService additional methods
//------------------------------------------------------------------------
// uses RwsConvert to retrieve a result that can be handled as a ULONG;
// type identifies the conversion, value can be anything (ULONG, char*, etc)
//static
nsresult
nsRwsService::RwsConvert(PRUint32 type, PRUint32 value, PRUint32 *result)
{
nsresult rv = NS_ERROR_FAILURE;
PRWSHDR pHdr = 0;
*result = 0;
PRUint32 rc = sRwsCall(&pHdr,
RWSP_CONV, 0,
RWSR_ASIS, 0, 1,
type, 0, value);
if (rc)
ERRMSG(rc, "RwsConvert to ULONG")
else {
*result = sRwsGetResult(pHdr, 1, 0);
if (*result == (PRUint32)-1)
*result = 0;
else
rv = NS_OK;
}
sRwsFreeMem(pHdr);
return rv;
}
//------------------------------------------------------------------------
// uses RwsConvert to retrieve a result that can be handled as a
// Unicode string; type identifies the conversion, value can be
// anything (ULONG, char*, etc)
//static
nsresult
nsRwsService::RwsConvert(PRUint32 type, PRUint32 value, nsAString& result)
{
nsresult rv = NS_ERROR_FAILURE;
PRWSHDR pHdr = 0;
result.Truncate();
PRUint32 rc = sRwsCall(&pHdr,
RWSP_CONV, 0,
RWSR_ASIS, 0, 1,
type, 0, value);
if (rc)
ERRMSG(rc, "RwsConvert to string")
else {
char *string = (char*)sRwsGetResult(pHdr, 1, 0);
if (string != (char*)-1)
rv = AssignTitleString(string, result);
}
sRwsFreeMem(pHdr);
return rv;
}
//------------------------------------------------------------------------
// nsIObserver implementation
//------------------------------------------------------------------------
// when the app shuts down, advise RwsClient; if this is the
// last app using RwsServer, the WPS will unload the class's dll;
// also, empty the extension cache to unlock & delete its icons
NS_IMETHODIMP
nsRwsService::Observe(nsISupports *aSubject, const char *aTopic,
const PRUnichar *aSomeData)
{
if (strcmp(aTopic, "quit-application") == 0) {
PRUint32 rc = sRwsClientTerminate();
if (rc)
ERRMSG(rc, "RwsClientTerminate");
if (mExtCache)
mExtCache->EmptyCache();
}
return NS_OK;
}
//------------------------------------------------------------------------
// nsRwsService static helper functions
//------------------------------------------------------------------------
// this wrapper for somIsA() makes HandlerFromPath() easier to read
static nsresult IsDescendedFrom(PRUint32 wpsFilePtr, const char *pszClassname)
{
PRWSHDR pHdr = 0;
nsresult rv = NS_ERROR_FAILURE;
PRUint32 rc = sRwsCall(&pHdr,
RWSP_MNAMI, (ULONG)"somIsA",
RWSR_ASIS, 0, 2,
RWSI_ASIS, 0, wpsFilePtr,
RWSI_CNAME, 0, pszClassname);
if (rc)
ERRMSG(rc, "somIsA")
else
if (sRwsGetResult(pHdr, 0, 0) == TRUE)
rv = NS_OK;
sRwsFreeMem(pHdr);
return rv;
}
//------------------------------------------------------------------------
// create a temp file with the specified extension, then return its path
static nsresult CreateFileForExtension(const char *aFileExt,
nsACString& aPath)
{
nsresult rv = NS_ERROR_FAILURE;
aPath.Truncate();
nsCOMPtr<nsIFile> tempFile;
rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(tempFile));
if (NS_FAILED(rv))
return rv;
nsCAutoString pathStr(NS_LITERAL_CSTRING("nsrws."));
if (*aFileExt == '.')
aFileExt++;
pathStr.Append(aFileExt);
rv = tempFile->AppendNative(pathStr);
if (NS_FAILED(rv))
return rv;
tempFile->GetNativePath(pathStr);
FILE *fp = fopen(pathStr.get(), "wb+");
if (fp) {
fclose(fp);
aPath.Assign(pathStr);
rv = NS_OK;
}
return rv;
}
//------------------------------------------------------------------------
// delete a temp file created earlier
static nsresult DeleteFileForExtension(const char *aPath)
{
if (!aPath || !*aPath)
return NS_ERROR_INVALID_ARG;
remove(aPath);
return NS_OK;
}
//------------------------------------------------------------------------
// returns a localized string from unknownContentType.properties;
// if there's a failure, returns "WPS Default"
static void AssignNLSString(const PRUnichar *aKey, nsAString& result)
{
nsresult rv;
nsXPIDLString title;
do {
nsCOMPtr<nsIStringBundleService> bundleSvc =
mozilla::services::GetStringBundleService();
if (!bundleSvc)
break;
nsCOMPtr<nsIStringBundle> bundle;
rv = bundleSvc->CreateBundle(
"chrome://mozapps/locale/downloads/unknownContentType.properties",
getter_AddRefs(bundle));
if (NS_FAILED(rv))
break;
// if we can't fetch the requested string, try to get "WPS Default"
rv = bundle->GetStringFromName(aKey, getter_Copies(title));
if (NS_FAILED(rv))
rv = bundle->GetStringFromName(NS_LITERAL_STRING("wpsDefaultOS2").get(),
getter_Copies(title));
} while (0);
if (NS_SUCCEEDED(rv))
result.Assign(title);
else
result.Assign(NS_LITERAL_STRING("WPS Default"));
}
//------------------------------------------------------------------------
// converts a native string (presumably a WPS object's title) to
// Unicode, removes line breaks, and compresses whitespace
static nsresult AssignTitleString(const char *aTitle, nsAString& result)
{
nsAutoChar16Buffer buffer;
PRInt32 bufLength;
// convert the title to Unicode
if (NS_FAILED(MultiByteToWideChar(0, aTitle, strlen(aTitle),
buffer, bufLength)))
return NS_ERROR_FAILURE;
PRUnichar *pSrc;
PRUnichar *pDst;
bool fSkip;
// remove line breaks, leading whitespace, & extra embedded whitespace
// (primitive, but gcc 3.2.2 doesn't support wchar)
for (fSkip=true, pSrc=pDst=buffer.Elements(); *pSrc; pSrc++) {
if (*pSrc == ' ' || *pSrc == '\r' || *pSrc == '\n' || *pSrc == '\t') {
if (!fSkip)
*pDst++ = ' ';
fSkip = true;
}
else {
if (pDst != pSrc)
*pDst = *pSrc;
pDst++;
fSkip = false;
}
}
// remove the single trailing space, if needed
if (fSkip && pDst > buffer.Elements())
pDst--;
*pDst = 0;
result.Assign(buffer.Elements());
return NS_OK;
}
//------------------------------------------------------------------------
// ExtCache implementation
//------------------------------------------------------------------------
ExtCache::ExtCache() : mCount(0), mSize(0), mExtInfo(0)
{
PTIB ptib;
PPIB ppib;
// the PID is needed to lock/unlock icons
DosGetInfoBlocks(&ptib, &ppib);
mPid = ppib->pib_ulpid;
PRUint32 rc = DosCreateMutexSem(0, (PHMTX)&mMutex, 0, 0);
if (rc)
ERRMSG(rc, "DosCreateMutexSem")
}
ExtCache::~ExtCache() {}
//------------------------------------------------------------------------
// retrieve the WPS's default icon for files with this extension
nsresult ExtCache::GetIcon(const char *aExt, bool aNeedMini,
PRUint32 *oIcon)
{
PRUint32 rc = DosRequestMutexSem(mMutex, kMutexTimeout);
if (rc) {
ERRMSG(rc, "DosRequestMutexSem")
return NS_ERROR_FAILURE;
}
ExtInfo *info = FindExtension(aExt);
if (info) {
if (aNeedMini)
*oIcon = info->mini;
else
*oIcon = info->icon;
}
else
*oIcon = 0;
rc = DosReleaseMutexSem(mMutex);
if (rc)
ERRMSG(rc, "DosReleaseMutexSem")
return (*oIcon ? NS_OK : NS_ERROR_FAILURE);
}
//------------------------------------------------------------------------
// save the WPS's default icon for files with this extension
nsresult ExtCache::SetIcon(const char *aExt, bool aIsMini,
PRUint32 aIcon)
{
PRUint32 rc = DosRequestMutexSem(mMutex, kMutexTimeout);
if (rc) {
ERRMSG(rc, "DosRequestMutexSem")
return NS_ERROR_FAILURE;
}
ExtInfo *info = FindExtension(aExt, true);
if (!info)
return NS_ERROR_FAILURE;
// the icon has to be made non-deletable or else
// it will be destroyed if the WPS terminates
if (!WinSetPointerOwner(aIcon, mPid, FALSE)) {
ERRPRINTF(info->ext, "WinSetPointerOwner failed for %s icon")
return NS_ERROR_FAILURE;
}
if (aIsMini)
info->mini = aIcon;
else
info->icon = aIcon;
ERRPRINTF(info->ext, "ExtCache - added icon for %s")
rc = DosReleaseMutexSem(mMutex);
if (rc)
ERRMSG(rc, "DosReleaseMutexSem")
return NS_OK;
}
//------------------------------------------------------------------------
// retrieve the WPS default handler's title & object handle (if any)
nsresult ExtCache::GetHandler(const char *aExt, PRUint32 *oHandle,
nsAString& oTitle)
{
PRUint32 rc = DosRequestMutexSem(mMutex, kMutexTimeout);
if (rc) {
ERRMSG(rc, "DosRequestMutexSem")
return NS_ERROR_FAILURE;
}
nsresult rv = NS_ERROR_FAILURE;
ExtInfo *info = FindExtension(aExt);
// if there's no title, the handle isn't useful
if (info && info->title) {
oTitle.Assign(info->title);
*oHandle = info->handler;
rv = NS_OK;
}
rc = DosReleaseMutexSem(mMutex);
if (rc)
ERRMSG(rc, "DosReleaseMutexSem")
return rv;
}
//------------------------------------------------------------------------
// save the WPS default handler's title & object handle (if any)
nsresult ExtCache::SetHandler(const char *aExt, PRUint32 aHandle,
nsAString& aTitle)
{
PRUint32 rc = DosRequestMutexSem(mMutex, kMutexTimeout);
if (rc) {
ERRMSG(rc, "DosRequestMutexSem")
return NS_ERROR_FAILURE;
}
nsresult rv = NS_ERROR_FAILURE;
ExtInfo *info = FindExtension(aExt, true);
// if the title can't be saved, don't save the handle
if (info) {
info->title = ToNewUnicode(aTitle);
if (info->title) {
info->handler = aHandle;
rv = NS_OK;
ERRPRINTF(info->ext, "ExtCache - added handler for %s")
}
}
rc = DosReleaseMutexSem(mMutex);
if (rc)
ERRMSG(rc, "DosReleaseMutexSem")
return rv;
}
//------------------------------------------------------------------------
// find the entry for the requested extension; if not found,
// create a new entry, expanding the array as needed
ExtInfo *ExtCache::FindExtension(const char *aExt, bool aSet)
{
// eliminate any leading dot & null extensions
if (*aExt == '.')
aExt++;
if (*aExt == 0)
return 0;
// too long to cache
if (strlen(aExt) >= 8)
return 0;
// uppercase extension, then confirm it still fits
char extUpper[16];
strcpy(extUpper, aExt);
// XXX WinUpper() can crash with high-memory
// could we just store as-is and instead use stricmp() for
// compare operations?
if (WinUpper(0, 0, 0, extUpper) >= 8)
return 0;
// a minor optimization: if we're setting a value, it probably
// belongs to the entry added most recently (i.e. the last one)
if (aSet && mCount && !strcmp(extUpper, (&mExtInfo[mCount-1])->ext))
return &mExtInfo[mCount-1];
ExtInfo *info;
PRUint32 ctr;
// look for the extension in the array, return if found
for (ctr = 0, info = mExtInfo; ctr < mCount; ctr++, info++)
if (!strcmp(extUpper, info->ext))
return info;
// if a new entry won't fit into the current array, realloc
if (mCount >= mSize) {
PRUint32 newSize = mSize + kGrowBy;
info = (ExtInfo*) NS_Realloc(mExtInfo, newSize * sizeof(ExtInfo));
if (!info)
return 0;
memset(&info[mSize], 0, kGrowBy * sizeof(ExtInfo));
mExtInfo = info;
mSize = newSize;
}
// point at the next entry & store the extension
info = &mExtInfo[mCount++];
strcpy(info->ext, extUpper);
return info;
}
//------------------------------------------------------------------------
// clear out the cache - since this is only called at shutdown,
// the primary concern is that the icons get unlocked & deleted
void ExtCache::EmptyCache()
{
if (!mExtInfo)
return;
PRUint32 rc = DosRequestMutexSem(mMutex, kMutexTimeout);
if (rc) {
ERRMSG(rc, "DosRequestMutexSem")
return;
}
PRUint32 saveMutex = mMutex;
mMutex = 0;
PRUint32 ctr;
ExtInfo *info;
for (ctr = 0, info = mExtInfo; ctr < mCount; ctr++, info++) {
ERRPRINTF(info->ext, "ExtCache - deleting entry for %s")
if (info->icon) {
if (WinSetPointerOwner(info->icon, mPid, TRUE) == FALSE ||
WinDestroyPointer(info->icon) == FALSE)
ERRPRINTF(info->ext, "unable to destroy icon for %s")
}
if (info->mini) {
if (WinSetPointerOwner(info->mini, mPid, TRUE) == FALSE ||
WinDestroyPointer(info->mini) == FALSE)
ERRPRINTF(info->ext, "unable to destroy mini for %s")
}
if (info->title)
NS_Free(info->title);
}
mCount = 0;
mSize = 0;
NS_Free(mExtInfo);
mExtInfo = 0;
rc = DosReleaseMutexSem(saveMutex);
if (rc)
ERRMSG(rc, "DosReleaseMutexSem")
rc = DosCloseMutexSem(saveMutex);
if (rc)
ERRMSG(rc, "DosCloseMutexSem")
}
//------------------------------------------------------------------------
// Module & Factory stuff
//------------------------------------------------------------------------
// this is the "getter proc" for nsRwsServiceConstructor(); it makes a
// single attempt to load the RWS libraries and, if successful, creates
// our singleton object; thereafter, it returns the existing object or
// NS_ERROR_NOT_AVAILABLE
static nsresult nsRwsServiceInit(nsRwsService **aClass)
{
// init already done - return what we've got or an error
if (sInit) {
*aClass = sRwsInstance;
if (*aClass == 0)
return NS_ERROR_NOT_AVAILABLE;
NS_ADDREF(*aClass);
return NS_OK;
}
sInit = TRUE;
*aClass = 0;
// don't load RWS if "MOZ_NO_RWS" is found in the environment
if (PR_GetEnv("MOZ_NO_RWS"))
return NS_ERROR_NOT_AVAILABLE;
char errBuf[16];
HMODULE hmod;
// try to load RwsCliXX.dll; first, see if the RWS WPS class is
// registered by f/q name - if so, look for RwsCli in the same
// directory; the goal is to consistently use the same pair of
// dlls if the user has multiple copies
PRUint32 rc = 1;
// get the list of registered WPS classes
ULONG cbClass;
if (!WinEnumObjectClasses(NULL, &cbClass))
return NS_ERROR_NOT_AVAILABLE;
char *pBuf = (char*)NS_Alloc(cbClass + CCHMAXPATH);
if (!pBuf)
return NS_ERROR_OUT_OF_MEMORY;
POBJCLASS pClass = (POBJCLASS)&pBuf[CCHMAXPATH];
if (!WinEnumObjectClasses(pClass, &cbClass)) {
NS_Free(pBuf);
return NS_ERROR_NOT_AVAILABLE;
}
// look for RWSxx
while (pClass) {
if (!strcmp(pClass->pszClassName, RWSCLASSNAME))
break;
pClass = pClass->pNext;
}
// if the class was found & it was registered with a f/q name,
// try to load RwsCliXX from the same directory
if (pClass && pClass->pszModName[1] == ':') {
strcpy(pBuf, pClass->pszModName);
char *ptr = strrchr(pBuf, '\\');
if (ptr) {
strcpy(ptr+1, RWSCLIDLL);
rc = DosLoadModule(errBuf, sizeof(errBuf), pBuf, &hmod);
}
}
NS_Free(pBuf);
// if RwsCli couldn't be found, look for it on the LIBPATH
if (rc)
rc = DosLoadModule(errBuf, sizeof(errBuf), RWSCLIMOD, &hmod);
// the dll couldn't be found, so exit
if (rc) {
ERRPRINTF(RWSCLIDLL, "nsRwsServiceInit - unable to locate %s");
return NS_ERROR_NOT_AVAILABLE;
}
// get the addresses of the procs we'll be using;
if (DosQueryProcAddr(hmod, ORD_RWSCALL, 0, (PFN*)&sRwsCall) ||
DosQueryProcAddr(hmod, ORD_RWSCALLINDIRECT,0, (PFN*)&sRwsCallIndirect) ||
DosQueryProcAddr(hmod, ORD_RWSFREEMEM, 0, (PFN*)&sRwsFreeMem) ||
DosQueryProcAddr(hmod, ORD_RWSGETRESULT, 0, (PFN*)&sRwsGetResult) ||
DosQueryProcAddr(hmod, ORD_RWSGETARGPTR, 0, (PFN*)&sRwsGetArgPtr) ||
DosQueryProcAddr(hmod, ORD_RWSCLIENTINIT, 0, (PFN*)&sRwsClientInit) ||
DosQueryProcAddr(hmod, ORD_RWSGETTIMEOUT, 0, (PFN*)&sRwsGetTimeout) ||
DosQueryProcAddr(hmod, ORD_RWSSETTIMEOUT, 0, (PFN*)&sRwsSetTimeout) ||
DosQueryProcAddr(hmod, ORD_RWSCLIENTTERMINATE, 0, (PFN*)&sRwsClientTerminate)) {
DosFreeModule(hmod);
ERRPRINTF("", "nsRwsServiceInit - DosQueryProcAddr failed%s")
return NS_ERROR_NOT_AVAILABLE;
}
// init RWS and have it register the WPS class if needed
rc = sRwsClientInit(TRUE);
if (rc) {
ERRMSG(rc, "RwsClientInit")
return NS_ERROR_NOT_AVAILABLE;
}
// if the user hasn't set a timeout, reset it to 2 seconds
// (the default is 20 seconds)
PRUint32 currentTO;
PRUint32 userTO;
rc = sRwsGetTimeout((PULONG)&currentTO, (PULONG)&userTO);
if (rc)
ERRMSG(rc, "RwsGetTimeout")
else
if (userTO == 0) {
rc = sRwsSetTimeout(2);
if (rc)
ERRMSG(rc, "RwsSetTimeout")
}
// create an instance of nsRwsService
sRwsInstance = new nsRwsService();
if (sRwsInstance == 0)
return NS_ERROR_OUT_OF_MEMORY;
*aClass = sRwsInstance;
NS_ADDREF(*aClass);
// set the class up as a shutdown observer
nsCOMPtr<nsIObserverService> os = mozilla::services::GetObserverService();
if (os)
os->AddObserver(*aClass, "quit-application", false);
return NS_OK;
}
//------------------------------------------------------------------------
// this is a variation on NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR();
// the only difference is that the _GetterProc returns an nsresult to
// provide a more appropriate error code (typically NS_ERROR_NOT_AVAILABLE)
NS_IMETHODIMP nsRwsServiceConstructor(nsISupports *aOuter, REFNSIID aIID,
void **aResult)
{
nsresult rv;
nsRwsService *inst;
*aResult = NULL;
if (aOuter) {
rv = NS_ERROR_NO_AGGREGATION;
return rv;
}
rv = nsRwsServiceInit(&inst);
if (NS_FAILED(rv)) {
ERRPRINTF(rv, "==>> nsRwsServiceInit failed - rv= %x");
return rv;
}
rv = inst->QueryInterface(aIID, aResult);
NS_RELEASE(inst);
return rv;
}
//------------------------------------------------------------------------