Changeset 127


Ignore:
Timestamp:
Sep 17, 2006, 8:25:32 AM (15 years ago)
Author:
Eugene Romanenko
Message:

start browser with external links

Location:
trunk/Lucide
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Lucide/BIN/Lucide.lng

    r123 r127  
    7272MSGS_FILE_SAVE_ERROR=Error saving file!
    7373MSGS_PAGE=Page
     74MSGS_ERROR_STARTING_BROWSER=Error starting browser!
    7475
    7576#
  • trunk/Lucide/SOURCE/gui/aboutDlg.cpp

    r91 r127  
    4545#include "lucide_res.h"
    4646
    47 void setLinkPointer( HPOINTER hp );
    48 void toLink( HWND hwnd );
     47extern "C" void setLinkPointer( HPOINTER hp );
     48extern "C" void toLink( HWND hwnd );
    4949BOOL DrawTransparentBitmap( HAB hab, HPS hpsDraw, PPOINTL drawptl, HBITMAP hbmp );
    5050
  • trunk/Lucide/SOURCE/gui/docViewer.cpp

    r126 r127  
    5454
    5555// OpenWatcom headers doesn't have GpiDrawBits() declaration
    56 extern "C" {
     56extern "C"
     57{
    5758    LONG APIENTRY GpiDrawBits(HPS hps, PVOID pBits, PBITMAPINFO2 pbmiInfoTable,
    5859                              LONG lCount, PPOINTL aptlPoints, LONG lRop, ULONG flOptions);
     
    17031704                    if ( links[ pg ]->_buffer[i].link.type == LU_LINK_TYPE_EXTERNAL_URI )
    17041705                    {
    1705                         WinMessageBox( HWND_DESKTOP, hMainFrame,
    1706                             links[ pg ]->_buffer[i].link.uri, "URI", 1,
    1707                             MB_OK | MB_INFORMATION | MB_MOVEABLE );
     1706                        if ( !startBrowser( links[ pg ]->_buffer[i].link.uri ) )
     1707                        {
     1708                            char *m = newstrdupL( MSGS_ERROR_STARTING_BROWSER );
     1709                            WinMessageBox( HWND_DESKTOP, hMainFrame, m,
     1710                                       NULL, 0, MB_OK | MB_ICONEXCLAMATION | MB_MOVEABLE );
     1711                            delete m;
     1712                        }
    17081713                    }
    17091714                    else if ( links[ pg ]->_buffer[i].link.type == LU_LINK_TYPE_TITLE )
  • trunk/Lucide/SOURCE/gui/linklab.c

    r35 r127  
    66 */
    77
    8 #define INCL_DOS
    98#define INCL_WIN
    109#define INCL_GPI
     
    1514
    1615
     16int startBrowser( const char *url );
     17
     18
    1719#define MAXTEXTLEN 256
    1820
    1921static HPOINTER handPtr = NULLHANDLE;
    20 static char browserExe[ CCHMAXPATH ] = "";
    21 static char browserDir[ CCHMAXPATH ] = "";
    2222
    2323typedef struct
     
    4141                char *text = (char *)malloc( MAXTEXTLEN );
    4242                WinQueryWindowText( hwnd, MAXTEXTLEN, text);
    43                 hps = WinBeginPaint( hwnd , 0L , 0L );
    44                 GpiQueryFontMetrics( hps , sizeof( FONTMETRICS ) , &fm );
    45                 memset( &fat , 0 , sizeof( fat ) );
     43                hps = WinBeginPaint( hwnd, 0L, 0L );
     44                GpiQueryFontMetrics( hps, sizeof( FONTMETRICS ), &fm );
     45                memset( &fat, 0, sizeof( fat ) );
    4646                fat.usRecordLength = sizeof( FATTRS );
    4747                fat.lMatch = fm.lMatch;
    4848                fat.fsSelection = FATTR_SEL_UNDERSCORE;
    49                 strcpy( fat.szFacename , fm.szFacename );
    50                 GpiDeleteSetId( hps , 1 );
    51                 GpiCreateLogFont( hps , 0 , 1 , &fat );
    52                 GpiSetCharSet( hps , 1 );
    53                 WinQueryWindowRect( hwnd , &ld->textRect );
     49                strcpy( fat.szFacename, fm.szFacename );
     50                GpiDeleteSetId( hps, 1 );
     51                GpiCreateLogFont( hps, 0, 1, &fat );
     52                GpiSetCharSet( hps, 1 );
     53                WinQueryWindowRect( hwnd, &ld->textRect );
    5454                style = WinQueryWindowULong( hwnd, QWL_STYLE );
    5555                style &= DT_LEFT|DT_CENTER|DT_RIGHT|DT_TOP|DT_VCENTER|DT_BOTTOM;
     
    8383        case WM_BUTTON1CLICK:
    8484            {
    85                 PROGDETAILS pd;
    8685                char *text;
    8786                POINTL ptl;
    8887
    89                 if ( strcmp( browserExe, "" ) == 0 )  break;
    90 
    9188                ptl.x = SHORT1FROMMP( mp1 );
    9289                ptl.y = SHORT2FROMMP( mp1 );
    93                 if ( !WinPtInRect( WinQueryAnchorBlock( hwnd ), &ld->textRect, &ptl) )
     90                if ( !WinPtInRect( WinQueryAnchorBlock( hwnd ), &ld->textRect, &ptl) ) {
    9491                    break;
     92                }
    9593
    96                 if ( ld->url == NULL )
    97                 {
     94                if ( ld->url == NULL ) {
    9895                    text = (char *)malloc( MAXTEXTLEN );
    9996                    WinQueryWindowText( hwnd, MAXTEXTLEN, text);
    10097                }
    101                 else  text = strdup( ld->url );
     98                else {
     99                    text = strdup( ld->url );
     100                }
    102101
    103                 pd.Length          = sizeof( PROGDETAILS );
    104                 pd.progt.progc     = PROG_DEFAULT;
    105                 pd.progt.fbVisible = SHE_VISIBLE;
    106                 pd.pszTitle        = NULL;
    107                 pd.pszExecutable   = browserExe;
    108                 pd.pszParameters   = NULL;
    109                 pd.pszStartupDir   = ( browserDir[0] == 0 ) ? NULL : browserDir;
    110                 pd.pszIcon         = NULL;
    111                 pd.pszEnvironment  = NULL;
    112                 pd.swpInitial.fl   = SWP_ACTIVATE;
    113                 pd.swpInitial.cy   = 0;
    114                 pd.swpInitial.cx   = 0;
    115                 pd.swpInitial.y    = 0;
    116                 pd.swpInitial.x    = 0;
    117                 pd.swpInitial.hwndInsertBehind = HWND_TOP;
    118                 pd.swpInitial.hwnd             = NULLHANDLE;
    119                 pd.swpInitial.ulReserved1      = 0;
    120                 pd.swpInitial.ulReserved2      = 0;
    121                 WinStartApp( NULLHANDLE , &pd , text , NULL , 0 );
     102                startBrowser( text );
     103
    122104                free( text );
    123105            }
     
    126108        case WM_DESTROY:
    127109            ld->labelProc( hwnd, msg, mp1, mp2 );
    128             if ( ld->url != NULL )  free( ld->url );
     110            if ( ld->url != NULL ) {
     111                free( ld->url );
     112            }
    129113            free( ld );
    130114            return (MRESULT)FALSE;
    131115    }
     116
    132117    return ld->labelProc( hwnd, msg, mp1, mp2 );
    133118}
    134119
    135 static void detectBrowser( void )
    136 {
    137     char *prfApp = "WPURLDEFAULTSETTINGS";
    138 
    139     if ( strcmp( browserExe, "" ) == 0 )
    140     {
    141         PrfQueryProfileString( HINI_USER, prfApp, "DefaultBrowserExe", "",
    142                                browserExe, CCHMAXPATH );
    143         PrfQueryProfileString( HINI_USER, prfApp, "DefaultWorkingDir", "",
    144                                browserDir, CCHMAXPATH );
    145     }
    146 
    147     if ( strcmp( browserExe, "" ) == 0 )
    148     {
    149         APIRET rc;
    150         rc = DosSearchPath( SEARCH_CUR_DIRECTORY | SEARCH_ENVIRONMENT | SEARCH_IGNORENETERRS ,
    151                             "PATH", "NETSCAPE.EXE", browserExe, CCHMAXPATH );
    152         if ( rc != 0 )  strcpy( browserExe , "" );
    153     }
    154 }
    155120
    156121void setLinkPointer( HPOINTER hp )
     
    163128{
    164129    linkData *ld;
    165     detectBrowser();
    166130    ld = (linkData *)malloc( sizeof( linkData ) );
    167131    memset( ld, 0, sizeof( linkData ) );
     
    174138{
    175139    linkData *ld;
    176     detectBrowser();
    177140    ld = (linkData *)malloc( sizeof( linkData ) );
    178141    memset( ld, 0, sizeof( linkData ) );
  • trunk/Lucide/SOURCE/gui/luutils.h

    r88 r127  
    8787#endif
    8888
     89extern "C" int startBrowser( const char *url );
     90
    8991
    9092#endif // __LUUTILS_H
  • trunk/Lucide/SOURCE/gui/makefile

    r114 r127  
    2323
    2424.C.OBJ:
    25      WPP386 @make.cfg -fo$@ $<
     25     WCC386 -zq -zp=4 -bm -sg -fo$@ $<
    2626
    2727.idl.xh:
     
    3737       fontsInfoDlg.obj docInfoDlg.obj findDlg.obj progressDlg.obj \
    3838       aboutDlg.obj settingsDlg.obj lusettings.obj printDlg.obj \
    39        print.obj
     39       print.obj stbrowser.obj
    4040
    4141Lucide.exe: $(OBJS) Lucide.res
     
    6868file $(OBJDIR)\intern.obj
    6969file $(OBJDIR)\messages.obj
     70file $(OBJDIR)\stbrowser.obj
    7071name $(EXEDIR)\Lucide
    7172lib ..\plugins\ludoc\ludoc
     
    107108linklab.obj:        linklab.c
    108109wwbtn.obj:          wwbtn.c
     110stbrowser.obj:      stbrowser.c
    109111
    110112
  • trunk/Lucide/SOURCE/gui/messages.cpp

    r102 r127  
    6262const char *MSGS_FILE_SAVE_ERROR  = "MSGS_FILE_SAVE_ERROR";
    6363const char *MSGS_PAGE             = "MSGS_PAGE";
     64const char *MSGS_ERROR_STARTING_BROWSER = "MSGS_ERROR_STARTING_BROWSER";
    6465
    6566// Settings dialog
  • trunk/Lucide/SOURCE/gui/messages.h

    r102 r127  
    6262extern const char *MSGS_FILE_SAVE_ERROR;
    6363extern const char *MSGS_PAGE;
     64extern const char *MSGS_ERROR_STARTING_BROWSER;
    6465
    6566// Settings dialog
Note: See TracChangeset for help on using the changeset viewer.