summaryrefslogtreecommitdiff
path: root/crashrep
diff options
context:
space:
mode:
authorsb <sb@openoffice.org>2010-01-18 11:59:59 +0100
committersb <sb@openoffice.org>2010-01-18 11:59:59 +0100
commitf4858770015bdc7f1faa5a64a8eca6e3c1cf5531 (patch)
tree17883e596e49c838fea51dc38f8dd7c179ee3f9e /crashrep
parentb87a09786de6f985602ef29f275f44a9944992ce (diff)
sb119: #i108102# clened up --enable-crashdump and crashrep/
Diffstat (limited to 'crashrep')
-rwxr-xr-xcrashrep/prj/build.lst1
-rwxr-xr-xcrashrep/scripts/makefile.mk47
-rwxr-xr-xcrashrep/source/unx/crash_report.sh (renamed from crashrep/scripts/crash_report.sh)0
-rwxr-xr-xcrashrep/source/unx/interface.cxx718
-rwxr-xr-xcrashrep/source/unx/interface.hxx192
-rwxr-xr-xcrashrep/source/unx/makefile.mk5
-rwxr-xr-xcrashrep/source/unx/res.cxx133
-rwxr-xr-xcrashrep/source/unx/res/makefile.mk63
-rwxr-xr-xcrashrep/source/unx/res/unxcrashres.cxx104
9 files changed, 2 insertions, 1261 deletions
diff --git a/crashrep/prj/build.lst b/crashrep/prj/build.lst
index 3315b843ed8d..ef1c85cc1c62 100755
--- a/crashrep/prj/build.lst
+++ b/crashrep/prj/build.lst
@@ -1,6 +1,5 @@
cr crashrep : l10n sal sysui SO:tools shell NULL
cr crashrep usr1 - all cr_mkout NULL
-cr crashrep\scripts nmake - all cr_suscript NULL
cr crashrep\source\all nmake - all cr_sresource NULL
cr crashrep\source\unx nmake - u cr_sunx NULL
cr crashrep\source\win32 nmake - n cr_swin32 cr_sresource NULL
diff --git a/crashrep/scripts/makefile.mk b/crashrep/scripts/makefile.mk
deleted file mode 100755
index 95b2bcb23562..000000000000
--- a/crashrep/scripts/makefile.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.3 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org 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 version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=crashrep
-TARGET=scripts
-
-# --- Settings -----------------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Targets -------------------------------------------------------------
-
-UNIXTEXT= \
- $(MISC)$/crash_report.sh
-
-.INCLUDE : target.mk
-
diff --git a/crashrep/scripts/crash_report.sh b/crashrep/source/unx/crash_report.sh
index 42cfe7ea1402..42cfe7ea1402 100755
--- a/crashrep/scripts/crash_report.sh
+++ b/crashrep/source/unx/crash_report.sh
diff --git a/crashrep/source/unx/interface.cxx b/crashrep/source/unx/interface.cxx
deleted file mode 100755
index f9768ed4a5de..000000000000
--- a/crashrep/source/unx/interface.cxx
+++ /dev/null
@@ -1,718 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: interface.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#include <interface.hxx>
-#include <iostream.h>
-
-using namespace std;
-
-/*
- * WizardPage
- */
-WizardPage::~WizardPage()
-{
-}
-
-/*
- * WizardDialog
- */
-
-WizardDialog::WizardDialog()
-{
- m_pStatusDialog = NULL;
- m_pTopLevel = gtk_window_new( GTK_WINDOW_TOPLEVEL );
- gtk_window_set_title( GTK_WINDOW(m_pTopLevel), StringResource::get( "%WELCOME_CAPTION%" ) );
-
- m_pVBox = gtk_vbox_new( FALSE, 5 );
- gtk_widget_show( m_pVBox );
- gtk_container_add( GTK_CONTAINER(m_pTopLevel), m_pVBox );
-
- m_pViewPort = gtk_viewport_new( NULL, NULL );
- gtk_widget_show( m_pViewPort );
-
- // set wizard title style
- gtk_widget_ensure_style( m_pViewPort );
- GtkStyle* pStyle = gtk_style_copy( gtk_widget_get_style( m_pViewPort ) );
- for( int i = 0; i < 5; i++ )
- {
- pStyle->bg[i] = pStyle->white;
- pStyle->text[i] = pStyle->black;
- pStyle->bg_gc[i] = pStyle->white_gc;
- pStyle->text_gc[i] = pStyle->black_gc;
- }
- gint nFontSize = pango_font_description_get_size( pStyle->font_desc );
- nFontSize = nFontSize * 3 / 2;
- pango_font_description_set_size( pStyle->font_desc, nFontSize );
- gtk_widget_set_style( m_pViewPort, pStyle );
- gtk_viewport_set_shadow_type( GTK_VIEWPORT(m_pViewPort), GTK_SHADOW_NONE );
- gtk_box_pack_start( GTK_BOX(m_pVBox), m_pViewPort, FALSE, FALSE, 0 );
-
- m_pWizardTitle = gtk_label_new( "Wizard" ); // to be replaced by resp. page titles
- gtk_widget_show( m_pWizardTitle );
- gtk_label_set_justify( GTK_LABEL(m_pWizardTitle), GTK_JUSTIFY_LEFT );
- gtk_misc_set_alignment( GTK_MISC(m_pWizardTitle), 0, 1 );
- gtk_misc_set_padding( GTK_MISC(m_pWizardTitle), 10, 10 );
- gtk_widget_set_style( m_pWizardTitle, pStyle );
- gtk_container_add( GTK_CONTAINER(m_pViewPort), m_pWizardTitle );
-
- // prepare the area for the single pages
- m_pPageArea = gtk_vbox_new( FALSE, 1);
- gtk_widget_show( m_pPageArea );
- gtk_box_pack_start( GTK_BOX(m_pVBox), m_pPageArea, TRUE, TRUE, 0 );
-
- m_pSeparator = gtk_hseparator_new();
- gtk_widget_show( m_pSeparator );
- gtk_box_pack_start( GTK_BOX(m_pVBox), m_pSeparator, FALSE, FALSE, 0 );
-
- m_pButtonBox = gtk_hbutton_box_new();
- gtk_widget_show( m_pButtonBox );
- gtk_box_pack_start( GTK_BOX(m_pVBox), m_pButtonBox, FALSE, FALSE, 0 );
- gtk_button_box_set_layout( GTK_BUTTON_BOX(m_pButtonBox), GTK_BUTTONBOX_END );
- gtk_button_box_set_spacing( GTK_BUTTON_BOX(m_pButtonBox), 0 );
-
- m_pBackButton = gtk_button_new_with_mnemonic( StringResource::get( "%BACK_BUTTON%" ) );
- gtk_widget_show( m_pBackButton );
- gtk_container_add( GTK_CONTAINER(m_pButtonBox), m_pBackButton );
- gtk_container_set_border_width( GTK_CONTAINER(m_pBackButton), 5 );
- GTK_WIDGET_SET_FLAGS( m_pBackButton, GTK_CAN_DEFAULT );
-
- m_pNextButton = gtk_button_new_with_mnemonic( StringResource::get( "%NEXT_BUTTON%" ) );
- gtk_widget_show( m_pNextButton );
- gtk_container_add( GTK_CONTAINER(m_pButtonBox), m_pNextButton );
- gtk_container_set_border_width( GTK_CONTAINER(m_pNextButton), 5 );
- GTK_WIDGET_SET_FLAGS( m_pNextButton, GTK_CAN_DEFAULT );
-
- m_pSendButton = gtk_button_new_with_mnemonic( StringResource::get( "%SEND_BUTTON%" ) );
- gtk_widget_show( m_pSendButton );
- gtk_container_add( GTK_CONTAINER(m_pButtonBox), m_pSendButton );
- gtk_container_set_border_width( GTK_CONTAINER(m_pSendButton), 5 );
- GTK_WIDGET_SET_FLAGS( m_pSendButton, GTK_CAN_DEFAULT );
-
- m_pCancelButton = gtk_button_new_with_mnemonic( StringResource::get( "%DONOT_SEND_BUTTON%" ) );
- gtk_widget_show( m_pCancelButton );
- gtk_container_add( GTK_CONTAINER(m_pButtonBox), m_pCancelButton );
- gtk_container_set_border_width( GTK_CONTAINER(m_pCancelButton), 5 );
- GTK_WIDGET_SET_FLAGS( m_pCancelButton, GTK_CAN_DEFAULT );
-
- gtk_signal_connect( GTK_OBJECT(m_pTopLevel), "delete-event", G_CALLBACK(gtk_main_quit), NULL );
- gtk_signal_connect( GTK_OBJECT(m_pCancelButton), "clicked", G_CALLBACK(gtk_main_quit), NULL );
- gtk_signal_connect( GTK_OBJECT(m_pNextButton), "clicked", G_CALLBACK(button_clicked), this );
- gtk_signal_connect( GTK_OBJECT(m_pBackButton), "clicked", G_CALLBACK(button_clicked), this );
- gtk_signal_connect( GTK_OBJECT(m_pSendButton), "clicked", G_CALLBACK(button_clicked), this );
- gtk_widget_set_sensitive( m_pSendButton, FALSE );
-
- m_nCurrentPage = -1;
-}
-
-WizardDialog::~WizardDialog()
-{
- int nPages = m_aPages.size();
- while( nPages-- )
- delete m_aPages[nPages];
-}
-
-void WizardDialog::show_messagebox( const std::string& rMessage )
-{
- GtkWidget* messagebox = NULL;
- GtkMessageType eType = GTK_MESSAGE_ERROR;
-
- messagebox = gtk_message_dialog_new( NULL,
- (GtkDialogFlags)0,
- eType,
- GTK_BUTTONS_OK,
- rMessage.c_str(),
- NULL
- );
-
- gtk_dialog_run( GTK_DIALOG(messagebox) );
- gtk_widget_destroy( GTK_WIDGET(messagebox) );
-}
-
-
-
-// bInProgress: true=sending, false=finished
-gint WizardDialog::show_sendingstatus( bool bInProgress )
-{
- m_pStatusDialog = gtk_dialog_new_with_buttons( StringResource::get( "%SENDING_REPORT_HEADER%" ),
- getTopLevel(),
- GTK_DIALOG_MODAL,
- bInProgress ? GTK_STOCK_CANCEL : GTK_STOCK_OK,
- bInProgress ? GTK_RESPONSE_REJECT : GTK_RESPONSE_OK,
- NULL );
-
- gtk_window_set_default_size( GTK_WINDOW(m_pStatusDialog), 350, 130 );
-
- GtkWidget *pLabel = gtk_label_new( bInProgress ? StringResource::get( "%SENDING_REPORT_STATUS%" ) :
- StringResource::get( "%SENDING_REPORT_STATUS_FINISHED%" ) );
- gtk_widget_show( pLabel );
- gtk_label_set_justify( GTK_LABEL(pLabel), GTK_JUSTIFY_CENTER);
- gtk_misc_set_alignment( GTK_MISC(pLabel), 0, 0 );
-
- gtk_container_add( GTK_CONTAINER(GTK_DIALOG(m_pStatusDialog)->vbox), pLabel );
-
- gint ret = gtk_dialog_run( GTK_DIALOG(m_pStatusDialog) );
- gtk_widget_destroy( m_pStatusDialog );
- m_pStatusDialog = NULL;
-
- return ret;
-}
-
-void WizardDialog::hide_sendingstatus()
-{
- if( m_pStatusDialog )
- {
- gtk_dialog_response( GTK_DIALOG(m_pStatusDialog), GTK_RESPONSE_OK );
-
- XEvent event;
-
- memset( &event, 0, sizeof(event) );
-
- event.xexpose.type = Expose;
- event.xexpose.display = GDK_DISPLAY();
- event.xexpose.window = GDK_WINDOW_XWINDOW( m_pStatusDialog->window );
- event.xexpose.width = event.xexpose.height = 10;
-
- XSendEvent(
- GDK_DISPLAY(),
- GDK_WINDOW_XWINDOW( m_pStatusDialog->window ),
- True,
- ExposureMask,
- &event );
-
- XFlush( GDK_DISPLAY() );
- }
-}
-
-
-gint WizardDialog::button_clicked( GtkWidget* pButton, WizardDialog* pThis )
-{
- if( pButton == pThis->m_pNextButton )
- pThis->nextPage();
- else if( pButton == pThis->m_pBackButton )
- pThis->lastPage();
- else if( pButton == pThis->m_pSendButton )
- {
- if( pThis->m_nCurrentPage != -1 )
- pThis->m_aPages[pThis->m_nCurrentPage]->update();
-
- if( send_crash_report( pThis, pThis->getSettings() ) )
- gtk_main_quit();
- }
-
- return 0;
-}
-
-void WizardDialog::insertPage( WizardPage* pPage )
-{
- m_aPages.push_back( pPage );
- if( m_nCurrentPage == -1 )
- {
- m_nCurrentPage = 0;
- gtk_label_set_text( GTK_LABEL(m_pWizardTitle), pPage->getTitle() );
- gtk_box_pack_start( GTK_BOX(m_pPageArea), pPage->getContents(), TRUE, TRUE, 0 );
- gtk_widget_set_sensitive( m_pNextButton, FALSE );
- gtk_widget_set_sensitive( m_pBackButton, FALSE );
- }
- else
- {
- gtk_widget_set_sensitive( m_pNextButton, TRUE );
- }
-}
-
-void WizardDialog::nextPage()
-{
- if( m_aPages.empty() || m_nCurrentPage >= (int)m_aPages.size()-1 )
- return;
-
- m_aPages[m_nCurrentPage]->update();
-
- gtk_container_remove( GTK_CONTAINER(m_pPageArea), m_aPages[m_nCurrentPage]->getContents() );
- m_nCurrentPage++;
- gtk_label_set_text( GTK_LABEL(m_pWizardTitle), m_aPages[m_nCurrentPage]->getTitle() );
- gtk_box_pack_start( GTK_BOX(m_pPageArea), m_aPages[m_nCurrentPage]->getContents(), TRUE, TRUE, 0 );
-
- if( m_nCurrentPage == (int)m_aPages.size()-1 )
- {
- gtk_widget_set_sensitive( m_pNextButton, FALSE );
- gtk_widget_set_sensitive( m_pSendButton, TRUE );
- }
- if( m_aPages.size() > 1 )
- gtk_widget_set_sensitive( m_pBackButton, TRUE );
-}
-
-void WizardDialog::lastPage()
-{
- if( m_aPages.empty() || m_nCurrentPage <= 0 )
- return;
-
- m_aPages[m_nCurrentPage]->update();
-
- gtk_container_remove( GTK_CONTAINER(m_pPageArea), m_aPages[m_nCurrentPage]->getContents() );
- m_nCurrentPage--;
- gtk_label_set_text( GTK_LABEL(m_pWizardTitle), m_aPages[m_nCurrentPage]->getTitle() );
- gtk_box_pack_start( GTK_BOX(m_pPageArea), m_aPages[m_nCurrentPage]->getContents(), TRUE, TRUE, 0 );
-
- if( m_nCurrentPage == 0 )
- gtk_widget_set_sensitive( m_pBackButton, FALSE );
- if( m_aPages.size() > 1 )
- gtk_widget_set_sensitive( m_pNextButton, TRUE );
-}
-
-void WizardDialog::show( bool bShow )
-{
- if( bShow )
- gtk_widget_show( m_pTopLevel );
- else
- gtk_widget_hide( m_pTopLevel );
-}
-
-/*
- * MainPage
- */
-
-MainPage::MainPage( WizardDialog* pParent ) : WizardPage( pParent )
-{
- hash_map< string, string >& rSettings = m_pDialog->getSettings();
- m_aWizardTitle = StringResource::get( "%REPORT_HEADER%" );
-
- m_pPageContents = gtk_vbox_new( FALSE, 0 );
- gtk_widget_show( m_pPageContents );
-
- m_pInfo = gtk_label_new( StringResource::get( "%REPORT_BODY%" ) );
- gtk_widget_show( m_pInfo );
- gtk_label_set_line_wrap( GTK_LABEL(m_pInfo), TRUE );
- gtk_label_set_justify( GTK_LABEL(m_pInfo), GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment( GTK_MISC(m_pInfo), 0, 1 );
- gtk_misc_set_padding( GTK_MISC(m_pInfo ), 5, 5);
- gtk_box_pack_start( GTK_BOX(m_pPageContents), m_pInfo, FALSE, FALSE, 0 );
-
- m_pHBox = gtk_hbox_new( FALSE, 0 );
- gtk_widget_show( m_pHBox );
- gtk_box_pack_start( GTK_BOX(m_pPageContents), m_pHBox, TRUE, TRUE, 0 );
-
- m_pLeftColumn = gtk_vbox_new( FALSE, 5 );
- gtk_widget_show( m_pLeftColumn );
- gtk_container_set_border_width( GTK_CONTAINER(m_pLeftColumn), 5 );
- gtk_box_pack_start( GTK_BOX(m_pHBox), m_pLeftColumn, TRUE, TRUE, 0 );
-
- m_pRightColumn = gtk_vbutton_box_new();
- gtk_widget_show( m_pRightColumn );
- gtk_button_box_set_layout( GTK_BUTTON_BOX(m_pRightColumn), GTK_BUTTONBOX_END );
- gtk_box_pack_start( GTK_BOX(m_pHBox), m_pRightColumn, FALSE, FALSE, 0 );
-
- m_pEditLabel = gtk_label_new_with_mnemonic( StringResource::get( "%ENTER_TITLE%" ) );
- gtk_widget_show( m_pEditLabel );
- gtk_label_set_justify( GTK_LABEL(m_pEditLabel), GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment( GTK_MISC(m_pEditLabel), 0, 1 );
- gtk_box_pack_start( GTK_BOX(m_pLeftColumn), m_pEditLabel, FALSE, FALSE, 0 );
-
- m_pEdit = gtk_entry_new();
- gtk_widget_show( m_pEdit );
- gtk_box_pack_start( GTK_BOX(m_pLeftColumn), m_pEdit, FALSE, FALSE, 0 );
-
- gtk_label_set_mnemonic_widget( GTK_LABEL(m_pEditLabel), m_pEdit );
-
- hash_map<string, string>::iterator aIter;
- aIter = rSettings.find( "TITLE" );
- if( aIter != rSettings.end() )
- gtk_entry_set_text( GTK_ENTRY(m_pEdit), aIter->second.c_str() );
-
- m_pEntryVBox = gtk_vbox_new( FALSE, 5 );
- gtk_widget_show( m_pEntryVBox );
- gtk_box_pack_start( GTK_BOX(m_pLeftColumn), m_pEntryVBox, TRUE, TRUE, 0 );
-
- m_pEntryLabel = gtk_label_new_with_mnemonic( StringResource::get( "%ENTER_DESCRIPTION%" ) );
- gtk_widget_show( m_pEntryLabel );
- gtk_label_set_justify( GTK_LABEL(m_pEntryLabel), GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment( GTK_MISC(m_pEntryLabel), 0, 1 );
- gtk_box_pack_start( GTK_BOX(m_pEntryVBox), m_pEntryLabel, FALSE, FALSE, 0 );
-
- m_pScrolledEntry = gtk_scrolled_window_new( NULL, NULL );
- gtk_widget_show( m_pScrolledEntry );
- gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW(m_pScrolledEntry), GTK_SHADOW_IN );
- gtk_box_pack_start( GTK_BOX(m_pEntryVBox), m_pScrolledEntry, TRUE, TRUE, 0 );
-
- m_pEntry = gtk_text_view_new();
- gtk_widget_show( m_pEntry );
- gtk_text_view_set_wrap_mode( GTK_TEXT_VIEW(m_pEntry), GTK_WRAP_WORD );
- gtk_container_add( GTK_CONTAINER(m_pScrolledEntry), m_pEntry );
-
- aIter = rSettings.find( "DESCRIPTION" );
- if( aIter != rSettings.end() )
- {
- GtkTextBuffer* pBuffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(m_pEntry) );
- gtk_text_buffer_set_text( pBuffer, aIter->second.c_str(), -1 );
- }
-
-
- gtk_label_set_mnemonic_widget( GTK_LABEL(m_pEntryLabel), m_pEntry );
-
- m_pDetails = gtk_button_new_with_mnemonic( StringResource::get( "%SHOW_REPORT_BUTTON%" ) );
- gtk_widget_show(m_pDetails);
- gtk_container_set_border_width( GTK_CONTAINER(m_pDetails), 5 );
- gtk_container_add( GTK_CONTAINER(m_pRightColumn), m_pDetails );
-
- m_pOptions = gtk_button_new_with_mnemonic( StringResource::get( "%OPTIONS_BUTTON%" ) );
- gtk_widget_show(m_pOptions);
- gtk_container_set_border_width( GTK_CONTAINER(m_pOptions), 5 );
- gtk_container_add( GTK_CONTAINER(m_pRightColumn), m_pOptions );
-
- // check env var for save button
- const char *szUserType = getenv( "STAROFFICE_USERTYPE" );
- if( szUserType && *szUserType )
- {
- m_pSave = gtk_button_new_with_mnemonic( StringResource::get( "%SAVE_REPORT_BUTTON%" ) );
- gtk_widget_show(m_pSave);
- gtk_container_set_border_width( GTK_CONTAINER(m_pSave), 5 );
- gtk_container_add( GTK_CONTAINER(m_pRightColumn), m_pSave );
- }
- else
- m_pSave = NULL;
-
-
- m_pCheck = gtk_check_button_new_with_mnemonic( StringResource::get( "%ALLOW_CONTACT%" ) );
- gtk_widget_show( m_pCheck );
- gtk_container_set_border_width( GTK_CONTAINER(m_pCheck), 5 );
- //gtk_box_pack_start( GTK_BOX(m_pPageContents), m_pCheck, FALSE, FALSE, 5 );
- gtk_box_pack_start( GTK_BOX(m_pLeftColumn), m_pCheck, FALSE, FALSE, 5 );
-
- aIter = rSettings.find( "CONTACT" );
- if( aIter != rSettings.end() )
- {
- const char *str = aIter->second.c_str();
- if( str && !strcasecmp(str, "true") )
- gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(m_pCheck), TRUE );
- }
-
- m_pAddressLabel = gtk_label_new_with_mnemonic( StringResource::get( "%ENTER_EMAIL%" ) );
- gtk_widget_show( m_pAddressLabel );
- gtk_label_set_justify( GTK_LABEL(m_pAddressLabel), GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment( GTK_MISC(m_pAddressLabel), 0, 1 );
- gtk_box_pack_start( GTK_BOX(m_pLeftColumn), m_pAddressLabel, FALSE, FALSE, 5 );
-
- m_pAddress = gtk_entry_new();
- gtk_widget_show( m_pAddress );
- gtk_box_pack_start( GTK_BOX(m_pLeftColumn), m_pAddress, FALSE, FALSE, 5 );
-
- aIter = rSettings.find( "EMAIL" );
- if( aIter != rSettings.end() )
- gtk_entry_set_text( GTK_ENTRY(m_pAddress), aIter->second.c_str() );
-
- gtk_signal_connect( GTK_OBJECT(m_pDetails), "clicked", G_CALLBACK(button_clicked), this );
- gtk_signal_connect( GTK_OBJECT(m_pOptions), "clicked", G_CALLBACK(button_clicked), this );
- if(m_pSave) // optional
- gtk_signal_connect( GTK_OBJECT(m_pSave), "clicked", G_CALLBACK(button_clicked), this );
-
- gtk_signal_connect( GTK_OBJECT(m_pCheck), "toggled", G_CALLBACK(button_toggled), this );
- button_toggled( m_pCheck, this );
-
- g_object_ref( G_OBJECT(m_pPageContents) );
-}
-
-MainPage::~MainPage()
-{
- g_object_unref( G_OBJECT(m_pPageContents) );
-}
-
-void MainPage::update()
-{
- hash_map< string, string >& rSettings = m_pDialog->getSettings();
-
- GtkTextIter start, end;
- GtkTextBuffer* pTextBuffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(m_pEntry) );
- gtk_text_buffer_get_bounds( pTextBuffer, &start, &end );
- rSettings[ "DESCRIPTION" ] = gtk_text_buffer_get_text( pTextBuffer, &start, &end, 1 );
- rSettings[ "TITLE" ] = gtk_entry_get_text( GTK_ENTRY(m_pEdit) );
- rSettings[ "CONTACT" ] = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(m_pCheck) ) ? "true" : "false";
- rSettings[ "EMAIL" ] = gtk_entry_get_text( GTK_ENTRY(m_pAddress) );
-}
-
-gint MainPage::button_toggled( GtkWidget* pButton, MainPage* pThis )
-{
- if ( GTK_TOGGLE_BUTTON (pThis->m_pCheck)->active )
- {
- gtk_widget_set_sensitive( pThis->m_pAddressLabel, TRUE);
- gtk_widget_set_sensitive( pThis->m_pAddress, TRUE);
- }
- else
- {
- gtk_widget_set_sensitive( pThis->m_pAddressLabel, FALSE);
- gtk_widget_set_sensitive( pThis->m_pAddress, FALSE);
- }
- return 0;
-}
-
-gint MainPage::button_clicked( GtkWidget* pButton, MainPage* pThis )
-{
- if( pButton == pThis->m_pSave )
- {
- GtkWidget* pFile = gtk_file_selection_new( StringResource::get( "%SAVE_REPORT_TITLE%" ) );
- gint nRet = gtk_dialog_run( GTK_DIALOG(pFile) );
- if( nRet == GTK_RESPONSE_OK )
- {
- string aFile = gtk_file_selection_get_filename( GTK_FILE_SELECTION(pFile) );
- pThis->update();
- if( save_crash_report( aFile, pThis->m_pDialog->getSettings() ) )
- {
- // gtk_main_quit();
- }
- }
- gtk_widget_destroy( pFile );
- }
- else if( pButton == pThis->m_pDetails )
- {
- pThis->update();
-
- GtkWidget* pDialog = gtk_dialog_new_with_buttons( StringResource::get( "%REPORT_CAPTION%" ),
- pThis->m_pDialog->getTopLevel(),
- GTK_DIALOG_MODAL,
- GTK_STOCK_OK,
- GTK_RESPONSE_OK,
- NULL );
-
- gtk_window_set_default_size( GTK_WINDOW(pDialog), 500, 300 );
- GtkWidget* pScroll = gtk_scrolled_window_new( NULL, NULL );
- gtk_widget_show( pScroll );
- gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW(pScroll), GTK_SHADOW_IN );
- gtk_container_add( GTK_CONTAINER(GTK_DIALOG(pDialog)->vbox), pScroll );
-
- string aText = crash_get_details( pThis->m_pDialog->getSettings() );
- GtkWidget* pView = gtk_text_view_new();
- gtk_widget_show( pView );
- gtk_text_view_set_wrap_mode( GTK_TEXT_VIEW(pView), GTK_WRAP_WORD );
- gtk_text_view_set_editable( GTK_TEXT_VIEW(pView), FALSE );
- GtkTextBuffer* pBuffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(pView) );
- gtk_text_buffer_set_text( pBuffer, aText.data(), aText.size() );
- gtk_container_add( GTK_CONTAINER(pScroll), pView );
-
- gtk_dialog_run( GTK_DIALOG(pDialog) );
- gtk_widget_destroy( pDialog );
- }
- else if( pButton == pThis->m_pOptions )
- {
- OptionsDialog aOptions( pThis->m_pDialog->getTopLevel(), pThis->m_pDialog->getSettings() );
- //pThis->m_pDialog->show_sendingstatus( true );
- //pThis->m_pDialog->show_sendingstatus( false );
- //sleep(5);
- //pThis->m_pDialog->hide_sendingstatus();
- }
-
- return 0;
-}
-
-/*
- * OptionsDialog (Proxy-Settings)
- */
-
-OptionsDialog::OptionsDialog( GtkWindow *pParent ,hash_map< string, string >& rSettings )
-{
- m_pDialog = gtk_dialog_new_with_buttons( StringResource::get( "%OPTIONS_TITLE%" ),
- pParent,
- GTK_DIALOG_MODAL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
- GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
- NULL );
-
- gtk_window_set_default_size( GTK_WINDOW(m_pDialog), 500, 300 );
-
- m_pPage = gtk_vbox_new( FALSE, 0 );
- m_pLeftColumn = gtk_vbox_new( FALSE, 5 );
-
- gtk_widget_show( m_pPage );
- gtk_widget_show( m_pLeftColumn );
-
- gtk_container_add( GTK_CONTAINER(GTK_DIALOG(m_pDialog)->vbox), m_pPage );
-
- gtk_container_set_border_width( GTK_CONTAINER(m_pLeftColumn), 5 );
- gtk_box_pack_start( GTK_BOX(m_pPage), m_pLeftColumn, FALSE, FALSE, 5 );
-
- // frame for proxy settings
- m_pFrame = gtk_frame_new(StringResource::get( "%PROXY_SETTINGS_HEADER%" ));
- gtk_frame_set_shadow_type( GTK_FRAME(m_pFrame), GTK_SHADOW_ETCHED_IN );
- gtk_widget_show(m_pFrame);
- gtk_box_pack_start(GTK_BOX (m_pLeftColumn), m_pFrame, TRUE, TRUE, 0);
-
- m_pVBox = gtk_vbox_new( FALSE, 0 );
- gtk_widget_show( m_pVBox );
- gtk_container_add( GTK_CONTAINER( m_pFrame ), m_pVBox );
-
- // the radio buttons
- m_pDirect = gtk_radio_button_new_with_mnemonic( NULL,
- StringResource::get( "%PROXY_SETTINGS_DIRECT%" ) );
- gtk_widget_show(m_pDirect);
- gtk_box_pack_start(GTK_BOX (m_pVBox), m_pDirect, FALSE, FALSE, 0);
-
- m_pManual = gtk_radio_button_new_with_mnemonic( gtk_radio_button_group( GTK_RADIO_BUTTON(m_pDirect) ),
- StringResource::get( "%PROXY_SETTINGS_MANUAL%" ) );
- gtk_widget_show(m_pManual);
- gtk_box_pack_start(GTK_BOX (m_pVBox), m_pManual, FALSE, FALSE, 0);
-
- hash_map<string, string>::iterator aIter;
- const char *str = NULL;
- aIter = rSettings.find( "USEPROXY" );
- if( aIter != rSettings.end() )
- str = aIter->second.c_str();
- if( str && !strcasecmp(str, "true") )
- gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(m_pManual), TRUE );
- else
- gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(m_pDirect), TRUE );
-
- // the server and port edit controls
- m_pHBox = gtk_hbox_new( FALSE, 0 );
- gtk_widget_show( m_pHBox );
- gtk_box_pack_start(GTK_BOX (m_pVBox), m_pHBox, FALSE, FALSE, 10);
-
- m_pVBoxServer = gtk_vbox_new( FALSE, 5 );
- gtk_widget_show( m_pVBoxServer );
- gtk_box_pack_start(GTK_BOX (m_pHBox), m_pVBoxServer, TRUE, TRUE, 10);
-
- m_pVBoxPort = gtk_vbox_new( FALSE, 5 );
- gtk_widget_show( m_pVBoxPort );
- gtk_box_pack_start(GTK_BOX (m_pHBox), m_pVBoxPort, FALSE, FALSE, 10);
-
- m_pServerLabel = gtk_label_new_with_mnemonic( StringResource::get( "%PROXY_SETTINGS_ADDRESS%" ) );
- gtk_widget_show( m_pServerLabel );
- gtk_label_set_justify( GTK_LABEL(m_pServerLabel), GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment( GTK_MISC(m_pServerLabel), 0, 1 );
- gtk_box_pack_start( GTK_BOX(m_pVBoxServer), m_pServerLabel, FALSE, FALSE, 0 );
-
- m_pServer = gtk_entry_new();
- gtk_widget_show( m_pServer );
- gtk_box_pack_start( GTK_BOX(m_pVBoxServer), m_pServer, FALSE, FALSE, 0 );
- gtk_label_set_mnemonic_widget( GTK_LABEL(m_pServerLabel), m_pServer );
- aIter = rSettings.find( "SERVER" );
- if( aIter != rSettings.end() )
- gtk_entry_set_text( GTK_ENTRY(m_pServer), aIter->second.c_str() );
-
- m_pPortLabel = gtk_label_new_with_mnemonic( StringResource::get( "%PROXY_SETTINGS_PORT%" ) );
- gtk_widget_show( m_pPortLabel );
- gtk_label_set_justify( GTK_LABEL(m_pPortLabel), GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment( GTK_MISC(m_pPortLabel), 0, 1 );
- gtk_box_pack_start( GTK_BOX(m_pVBoxPort), m_pPortLabel, FALSE, FALSE, 0 );
-
- m_pPort = gtk_entry_new();
- gtk_widget_show( m_pPort );
- gtk_box_pack_start( GTK_BOX(m_pVBoxPort), m_pPort, FALSE, FALSE, 0 );
- gtk_label_set_mnemonic_widget( GTK_LABEL(m_pPortLabel), m_pPort );
- aIter = rSettings.find( "PORT" );
- if( aIter != rSettings.end() )
- gtk_entry_set_text( GTK_ENTRY(m_pPort), aIter->second.c_str() );
-
- // help text
- m_pNote = gtk_label_new( StringResource::get( "%PROXY_SETTINGS_DESCRIPTION%" ) );
- gtk_widget_show( m_pNote );
- gtk_label_set_justify( GTK_LABEL(m_pNote), GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment( GTK_MISC(m_pNote), 0, 1 );
- gtk_box_pack_start(GTK_BOX (m_pLeftColumn), m_pNote, FALSE, FALSE, 5);
- gtk_label_set_line_wrap (GTK_LABEL (m_pNote), TRUE);
-
-
- gtk_signal_connect( GTK_OBJECT(m_pDirect), "toggled", G_CALLBACK(button_toggled), this );
- gtk_signal_connect( GTK_OBJECT(m_pManual), "toggled", G_CALLBACK(button_toggled), this );
-
- button_toggled( m_pDirect, this );
-
- if( gtk_dialog_run( GTK_DIALOG(m_pDialog) ) == GTK_RESPONSE_OK )
- {
- rSettings[ "SERVER" ] = getServer();
- rSettings[ "PORT" ] = getPort();
- rSettings[ "USEPROXY" ] = getUseProxy();
- }
- g_object_ref( G_OBJECT(m_pDialog) );
-}
-
-OptionsDialog::~OptionsDialog()
-{
- gtk_widget_destroy( m_pDialog );
- g_object_unref( G_OBJECT(m_pDialog) );
-}
-
-gint OptionsDialog::button_toggled( GtkWidget* pButton, OptionsDialog* pThis )
-{
- if ( GTK_TOGGLE_BUTTON (pThis->m_pManual)->active )
- {
- gtk_widget_set_sensitive( pThis->m_pServerLabel, TRUE);
- gtk_widget_set_sensitive( pThis->m_pServer, TRUE);
- gtk_widget_set_sensitive( pThis->m_pPortLabel, TRUE);
- gtk_widget_set_sensitive( pThis->m_pPort, TRUE);
- }
- else
- {
- gtk_widget_set_sensitive( pThis->m_pServerLabel, FALSE);
- gtk_widget_set_sensitive( pThis->m_pServer, FALSE);
- gtk_widget_set_sensitive( pThis->m_pPortLabel, FALSE);
- gtk_widget_set_sensitive( pThis->m_pPort, FALSE);
- }
-
- return 0;
-}
-
-string OptionsDialog::getUseProxy()
-{
- return gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(m_pDirect) ) ? "false" : "true";
-}
-string OptionsDialog::getServer()
-{
- return gtk_entry_get_text( GTK_ENTRY(m_pServer) );
-}
-string OptionsDialog::getPort()
-{
- return gtk_entry_get_text( GTK_ENTRY(m_pPort) );
-}
-
-/*
- * WelcomePage
- */
-WelcomePage::WelcomePage( WizardDialog* pParent ) : WizardPage( pParent )
-{
- m_aWizardTitle = StringResource::get( "%WELCOME_HEADER%" );
-
- string aBody = StringResource::get( "%WELCOME_BODY1%" );
- aBody += StringResource::get( "%WELCOME_BODY2%" );
- aBody += StringResource::get( "%WELCOME_BODY3%" );
- aBody += "\n\n";
- aBody += StringResource::get( "%PRIVACY_URL%" );
- m_pPageContents = gtk_label_new( aBody.c_str() );
- gtk_widget_show( m_pPageContents );
- gtk_label_set_line_wrap( GTK_LABEL(m_pPageContents), TRUE );
- gtk_label_set_justify( GTK_LABEL(m_pPageContents), GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment( GTK_MISC(m_pPageContents), 0, 1 );
- gtk_misc_set_padding( GTK_MISC(m_pPageContents ), 5, 5);
-
- g_object_ref( G_OBJECT(m_pPageContents) );
-}
-
-WelcomePage::~WelcomePage()
-{
- g_object_unref( G_OBJECT(m_pPageContents) );
-}
-
-void WelcomePage::update()
-{
-}
diff --git a/crashrep/source/unx/interface.hxx b/crashrep/source/unx/interface.hxx
deleted file mode 100755
index ad80c218fa65..000000000000
--- a/crashrep/source/unx/interface.hxx
+++ /dev/null
@@ -1,192 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: interface.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-
-#include <gdk/gdkkeysyms.h>
-#include <gtk/gtk.h>
-#include <gdk/gdk.h>
-#include <gdk/gdkx.h>
-
-#include <X11/Xlib.h>
-
-#include <hash_map>
-#include <vector>
-#include <string>
-
-class WizardDialog;
-
-// returns success, on true application will quit
-bool save_crash_report( const std::string& rFileName, const std::hash_map< std::string, std::string >& rSettings );
-// returns success, on true application will quit
-bool send_crash_report( WizardDialog *pDialog, const std::hash_map< std::string, std::string >& rSettings );
-// must return a valid UTF8 string containing the message that will be sent
-std::string crash_get_details( const std::hash_map< std::string, std::string >& rSettings );
-
-class StringResource
-{
-public:
- static void init( int argc, char** argv );
- static const char* get( const char* pKey );
-};
-
-class WizardPage
-{
-protected:
- std::string m_aWizardTitle;
- GtkWidget* m_pPageContents;
- WizardDialog* m_pDialog;
-public:
- WizardPage( WizardDialog* pDialog ) : m_pDialog( pDialog ) {}
- virtual ~WizardPage();
-
- const char* getTitle() const { return m_aWizardTitle.c_str(); }
- GtkWidget* getContents() const { return m_pPageContents; }
-
- virtual void update() = 0;
-};
-
-class WizardDialog
-{
- std::vector< WizardPage* > m_aPages;
- int m_nCurrentPage;
-
- GtkWidget* m_pTopLevel;
- GtkWidget* m_pVBox;
- GtkWidget* m_pViewPort;
- GtkWidget* m_pWizardTitle;
- GtkWidget* m_pPageArea;
- GtkWidget* m_pSeparator;
- GtkWidget* m_pButtonBox;
- GtkWidget* m_pBackButton;
- GtkWidget* m_pNextButton;
- GtkWidget* m_pSendButton;
- GtkWidget* m_pCancelButton;
-
- GtkWidget* m_pStatusDialog;
-
- std::hash_map< std::string, std::string > m_aSettings;
-
- static gint button_clicked( GtkWidget* pButton, WizardDialog* pThis );
-
- void nextPage();
- void lastPage();
-public:
- WizardDialog();
- ~WizardDialog();
-
- // takes ownership of page
- void insertPage( WizardPage* pPage );
-
- void show( bool bShow = true );
- void show_messagebox( const std::string& rMessage );
- gint show_sendingstatus( bool bInProgress );
- void hide_sendingstatus();
-
- std::hash_map< std::string, std::string >& getSettings() { return m_aSettings; }
- GtkWindow* getTopLevel() const { return GTK_WINDOW(m_pTopLevel); }
-};
-
-class MainPage : public WizardPage
-{
- GtkWidget* m_pInfo;
- GtkWidget* m_pEditLabel;
- GtkWidget* m_pEdit;
- GtkWidget* m_pEntryLabel;
- GtkWidget* m_pEntryVBox;
- GtkWidget* m_pScrolledEntry;
- GtkWidget* m_pEntry;
- GtkWidget* m_pHBox;
- GtkWidget* m_pRightColumn;
- GtkWidget* m_pLeftColumn;
- GtkWidget* m_pDetails;
- GtkWidget* m_pSave;
- GtkWidget* m_pCheck;
- GtkWidget* m_pOptions;
- GtkWidget* m_pAddressLabel;
- GtkWidget* m_pAddress;
-
- static gint button_clicked( GtkWidget* pButton, MainPage* pThis );
- static gint button_toggled( GtkWidget* pButton, MainPage* pThis );
-
-public:
- MainPage( WizardDialog* );
- virtual ~MainPage();
-
- virtual void update();
-};
-
-class WelcomePage : public WizardPage
-{
-public:
- WelcomePage( WizardDialog* );
- virtual ~WelcomePage();
-
- virtual void update();
-};
-
-class OptionsDialog
-{
- GtkWidget* m_pDialog;
- GtkWidget* m_pPage;
- GtkWidget* m_pLeftColumn;
- GtkWidget* m_pFrame;
- GtkWidget* m_pDirect;
- GtkWidget* m_pManual;
- GtkWidget* m_pServerLabel;
- GtkWidget* m_pServer;
- GtkWidget* m_pColon;
- GtkWidget* m_pPortLabel;
- GtkWidget* m_pPort;
- GtkWidget* m_pNote;
- GtkWidget* m_pOkButton;
- GtkWidget* m_pCancelButton;
- GtkWidget* m_pButtonBox;
- GtkWidget* m_pVBox;
- GtkWidget* m_pHBox;
- GtkWidget* m_pVBoxServer;
- GtkWidget* m_pVBoxPort;
-
- static gint button_toggled( GtkWidget* pButton, OptionsDialog* pThis );
-
-public:
- OptionsDialog( GtkWindow* pParent,
- std::hash_map< std::string, std::string >& rSettings );
- virtual ~OptionsDialog();
-
- std::string getUseProxy();
- std::string getServer();
- std::string getPort();
-
-};
diff --git a/crashrep/source/unx/makefile.mk b/crashrep/source/unx/makefile.mk
index 2f8be8f96a76..54ffb7137cb9 100755
--- a/crashrep/source/unx/makefile.mk
+++ b/crashrep/source/unx/makefile.mk
@@ -60,9 +60,6 @@ APP1TARGET=$(TARGET)
APP1OBJS=$(OBJFILES)
APP1RPATH=BRAND
-.IF "$(OS)" != "MACOSX"
-APP1STDLIBS=$(DYNAMIC) -lXext -lX11
-.ENDIF
.IF "$(OS)" != "FREEBSD" && "$(OS)" != "MACOSX" && "$(OS)"!="NETBSD"
APP1STDLIBS+=-ldl -lnsl
.ENDIF
@@ -70,6 +67,8 @@ APP1STDLIBS+=-ldl -lnsl
APP1STDLIBS+=-lsocket
.ENDIF
+UNIXTEXT = $(MISC)/crash_report.sh
+
.ENDIF # "$(ENABLE_CRASHDUMP)" != "" || "$(PRODUCT)" == ""
# --- Targets ------------------------------------------------------
diff --git a/crashrep/source/unx/res.cxx b/crashrep/source/unx/res.cxx
deleted file mode 100755
index 54968bb2259d..000000000000
--- a/crashrep/source/unx/res.cxx
+++ /dev/null
@@ -1,133 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: res.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <interface.hxx>
-#include <cstdio>
-#include <hash_map>
-#include <string>
-
-using namespace std;
-
-static hash_map< string, string >* pStringResources = NULL;
-
-static string getResFileName( const char* progname )
-{
- string aRet = progname;
- size_t pos = aRet.rfind( '/' );
- // FIXME: search PATH if necessary
- OSL_ASSERT( pos != string::npos );
- aRet.erase( pos );
- aRet.append( "/resource/crash_dump.res" );
-
- return aRet;
-}
-
-static void filterString( string& rString )
-{
- static const char* pProductName = getenv( "PRODUCTNAME" );
- static int nProductLen = pProductName ? strlen( pProductName ) : 0;
- static const char* pProductVersion = getenv( "PRODUCTVERSION" );
- static int nVersionLen = pProductVersion ? strlen( pProductVersion ) : 0;
-
- // fill in eventually escaped characters
- string::size_type pos = 0;
- while( (pos = rString.find( '\\' ) ) != string::npos )
- {
- char cRep = 0;
- switch( rString[pos+1] )
- {
- case 't': cRep = '\t';break;
- case 'n': cRep = '\n';break;
- case 'r': cRep = '\r';break;
- case 'f': cRep = '\f';break;
- default: cRep = rString[pos+1];
- }
- if( cRep )
- rString.replace( pos, 2, &cRep, 1 );
- }
- while( (pos = rString.find( '~' ) ) != string::npos )
- {
- // replace mnemonic marker
- rString.replace( pos, 1, "_", 1 );
- }
- while( (pos = rString.find( "%PRODUCTNAME%" ) ) != string::npos )
- {
- rString.replace( pos, 13, pProductName ? pProductName : "OpenOffice" );
- }
- while( (pos = rString.find( "%PRODUCTVERSION%" ) ) != string::npos )
- {
- rString.replace( pos, 16, pProductVersion ? pProductVersion : "" );
- }
- // remove whitespace at end
- pos = rString.find_last_not_of( "\r\n\t\f " );
- if( pos != string::npos )
- rString.erase( pos+1 );
-}
-
-void StringResource::init( int argc, char** argv )
-{
- pStringResources = new hash_map< string, string >();
-
- string aResFile = getResFileName( argv[0] );
-
- FILE* fp = fopen( aResFile.c_str(), "r" );
- if( fp )
- {
- char buf[4096];
- string aKey;
- string aValue;
- while( ! feof( fp ) )
- {
- if( ! fgets( buf, sizeof(buf), fp ) )
- break;
-
- char* pEq = strchr( buf, '=' );
- if( ! pEq || *(pEq+1) == 0 ) // invalid line
- continue;
- aKey = string(buf, pEq-buf);
- aValue = pEq+1;
- while( (aValue.empty() || aValue[ aValue.size()-1 ] != '\n') && ! feof( fp ) )
- {
- if( fgets( buf, sizeof( buf ), fp ) )
- aValue.append( buf );
- }
- filterString( aValue );
- (*pStringResources)[aKey] = aValue;
- }
- fclose( fp );
- }
-}
-
-const char* StringResource::get( const char* pKey )
-{
- hash_map< string, string >::const_iterator it = pStringResources->find( pKey );
- return (it == pStringResources->end()) ? "" : it->second.c_str();
-}
-
diff --git a/crashrep/source/unx/res/makefile.mk b/crashrep/source/unx/res/makefile.mk
deleted file mode 100755
index 4e6d733e2d37..000000000000
--- a/crashrep/source/unx/res/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.6 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org 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 version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=crashrep
-TARGET=unxcrashres
-LIBTARGET=NO
-TARGETTYPE=CUI
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)"=="MACOSX"
-
-dummy:
- @echo "Nothing to build for OS $(OS)"
-
-.ELSE # "$(OS)"=="MACOSX"
-
-# --- Files --------------------------------------------------------
-
-SOLARLIB!:=$(SOLARLIB:s/jre/jnore/)
-
-APP1TARGET=$(TARGET)
-APP1OBJS=$(OBJ)$/unxcrashres.obj
-APP1STDLIBS=$(TOOLSLIB) $(SALLIB)
-
-.ENDIF "$(OS)"=="MACOSX"
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/crashrep/source/unx/res/unxcrashres.cxx b/crashrep/source/unx/res/unxcrashres.cxx
deleted file mode 100755
index 4bfd34f58ba0..000000000000
--- a/crashrep/source/unx/res/unxcrashres.cxx
+++ /dev/null
@@ -1,104 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: unxcrashres.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/#include <tools/config.hxx>
-#include <rtl/string.hxx>
-#include <osl/thread.h>
-
-#include <hash_map>
-#include <string>
-#include <cstdio>
-#include <cerrno>
-
-using namespace std;
-using namespace rtl;
-
-void filterValue( ByteString& rValue, const OString& rGroup, const ByteString& rKey )
-{
- USHORT nStartPos = rValue.Search( '"' );
- USHORT nStopPos = rValue.SearchBackward( '"' );
- if( nStartPos == STRING_NOTFOUND || nStopPos == STRING_NOTFOUND )
- {
- fprintf( stderr, "Error: invalid key in [%s] in key \"%s\"\n",
- rGroup.getStr(),
- rKey.GetBuffer() );
- exit( 1 );
- }
- rValue.Erase( nStopPos );
- rValue.Erase( 0, nStartPos+1 );
-}
-
-int main( int argc, char** argv )
-{
- if( argc != 3 )
- {
- fprintf( stderr, "USAGE: unxcrashres <in_lng_file> <out_file_prefix>\n" );
- exit( 1 );
- }
-
- ByteString tmp_argv1( argv[1] );
- Config aConfig( String( tmp_argv1, osl_getThreadTextEncoding() ) );
- hash_map< ByteString, hash_map< OString, OString, OStringHash >, OStringHash > aFiles;
-
- for( USHORT i = 0; i < aConfig.GetGroupCount(); i++ )
- {
- aConfig.SetGroup( aConfig.GetGroupName( i ) );
- OString aGroup = aConfig.GetGroupName( i );
- USHORT nKeys = aConfig.GetKeyCount();
- for( USHORT n = 0; n < nKeys; n++ )
- {
- ByteString aKey = aConfig.GetKeyName( n );
- ByteString aValue = aConfig.ReadKey( aKey );
- // tailor key
- filterValue( aValue, aGroup, aKey );
-
- aFiles[aKey][aGroup] = ByteString( aValue );
- }
- }
-
- for( hash_map< ByteString, hash_map< OString, OString, OStringHash >, OStringHash >::const_iterator lang_it = aFiles.begin(); lang_it != aFiles.end(); ++lang_it )
- {
- ByteString aFile( argv[2] );
- aFile.Append( '.' );
- aFile.Append( lang_it->first );
- FILE* fp = fopen( aFile.GetBuffer(), "w" );
- if( ! fp )
- {
- fprintf( stderr, "Error: could not open \"%s\" for writing: %s\n",
- aFile.GetBuffer(), strerror( errno ) );
- exit(1);
- }
- for( hash_map< OString, OString, OStringHash >::const_iterator line_it = lang_it->second.begin(); line_it != lang_it->second.end(); ++line_it )
- {
- fprintf( fp, "%s=%s\n", line_it->first.getStr(), line_it->second.getStr() );
- }
- fclose( fp );
- }
-
- return 0;
-}