2006-05-05
hexedit 2.0 selection patch
here's a patch to fix the horizontal selection offset in hexedit 2.0. in the ppc disasm view, things are shifted slightly - I simply unhardcoded the offset and made it depend on the view. I've had no luck contacting lane roathe, and I can't be bothered figuring out how to log in to sourceforge to submit this properly.

--- EditWindowOld.c 2005-08-24 18:39:43.000000000 -0300
+++ EditWindow.c 2005-12-01 11:22:31.000000000 -0400
@@ -71,6 +71,10 @@
kNavDITLNumControls = 4//3 radio buttons + radio group control
};

+// RA 051201 unhardcode selection x offset
+#define kHexSelectionOffset -3
+#define kDisasmSelectionOffset 2
+
/*** NEW OFFSCREEN GWORLD ***/
// LR: create offscreen drawing surface (so drawing to screen is not flickery)
//LR 180 -- removed old comments, now always creates offscreen at current color depth
@@ -1273,6 +1277,7 @@

/*** INVERT SELECTION ***/
//LR 180 -- changes to draw offscreen instead of directly to window
+// RA 051201 replace "- 3" with "+ xOffset"
static void _hiliteSelection( EditWindowPtr dWin )
{
Rect r;
@@ -1282,6 +1287,9 @@
RGBColor hColor, opcolor = { 0x8000, 0x8000, 0xF000 };
//185 RGBColor invertColor;

+ // RA 051201 selectxoffset
+ short xOffset;
+
frontFlag = (dWin->oWin.theWin == FrontNonFloatingWindow() && dWin->oWin.active);

if( dWin->endSel <= dWin->startSel )
@@ -1295,6 +1303,14 @@

RGBForeColor( &grey );
OpColor( &opcolor );
+
+ // RA 051201 selectxoffset
+ if (dWin->drawMode == DM_Disassembly) {
+ xOffset = kDisasmSelectionOffset;
+ } else {
+ xOffset = kHexSelectionOffset;
+ }
+
/*185
if( ctHdl )
invertColor = ( *ctHdl )->body;
@@ -1323,8 +1339,8 @@
// Invert Hex
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( start ) * kLineHeight;
r.bottom = r.top + kLineHeight;
- r.left = kDataDrawPos + HEXPOS( startX ) - 3;
- r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) - 3;
+ r.left = kDataDrawPos + HEXPOS( startX ) + xOffset;
+ r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) + xOffset;
HILITERECT( &r );

// Outline Box around Ascii
@@ -1346,8 +1362,8 @@
{
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( start ) * kLineHeight + kLineHeight;
r.bottom = /*(kHeaderHeight / 2) +*/ LINENUM( end ) * kLineHeight;
- r.left = kDataDrawPos - 3;
- r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) - 3;
+ r.left = kDataDrawPos + xOffset;
+ r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) + xOffset;
HILITERECT( &r );

r.left = kTextDrawPos - 1;
@@ -1359,8 +1375,8 @@
}
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( end ) * kLineHeight;
r.bottom = r.top + kLineHeight;
- r.left = kDataDrawPos - 3;
- r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth - 3;
+ r.left = kDataDrawPos + xOffset;
+ r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth + xOffset;
HILITERECT( &r );

r.left = kTextDrawPos - 1;
@@ -1380,8 +1396,8 @@
{
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( start ) * kLineHeight;
r.bottom = r.top + kLineHeight;
- r.left = kDataDrawPos + HEXPOS( startX ) - 3;
- r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth - 3;
+ r.left = kDataDrawPos + HEXPOS( startX ) + xOffset;
+ r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth + xOffset;
HILITERECT( &r );

r.left = kTextDrawPos + CHARPOS( startX )-1;
@@ -1409,10 +1425,10 @@
// Outline Hex
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( start ) * kLineHeight;
r.bottom = r.top + kLineHeight;
- r.left = kDataDrawPos + HEXPOS( startX ) - 3;
- r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) - 3;
+ r.left = kDataDrawPos + HEXPOS( startX ) + xOffset;
+ r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) + xOffset;

- MoveTo( kDataDrawPos - 3, r.bottom );
+ MoveTo( kDataDrawPos + xOffset, r.bottom );
LineTo( r.left, r.bottom );
LineTo( r.left, r.top );
if( dWin->startSel >= dWin->editOffset )
@@ -1432,8 +1448,8 @@
{
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( start ) * kLineHeight + kLineHeight;
r.bottom = /*(kHeaderHeight / 2) +*/ LINENUM( end ) * kLineHeight;
- r.left = kDataDrawPos - 3;
- r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) - 3;
+ r.left = kDataDrawPos + xOffset;
+ r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) + xOffset;
MoveTo( r.left, r.top );
LineTo( r.left, r.bottom );
MoveTo( r.right, r.top );
@@ -1445,8 +1461,8 @@
}
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( end ) * kLineHeight;
r.bottom = r.top + kLineHeight;
- r.left = kDataDrawPos - 3;
- r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth - 3;
+ r.left = kDataDrawPos + xOffset;
+ r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth + xOffset;
MoveTo( r.left, r.top );
LineTo( r.left, r.bottom );
if( dWin->endSel < dWin->editOffset + dWin->linesPerPage * kBytesPerLine )
@@ -1456,7 +1472,7 @@
else
MoveTo( r.right, r.bottom );
LineTo( r.right, r.top );
- LineTo( kDataDrawPos + HEXPOS( kBytesPerLine ) - 3, r.top );
+ LineTo( kDataDrawPos + HEXPOS( kBytesPerLine ) + xOffset, r.top );

r.left = kTextDrawPos - 1;
r.right = kTextDrawPos + CHARPOS( endX ) + kCharWidth; //LR 180 - 1;
@@ -1466,8 +1482,8 @@
{
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( start ) * kLineHeight;
r.bottom = r.top + kLineHeight;
- r.left = kDataDrawPos + HEXPOS( startX ) - 3;
- r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth - 3;
+ r.left = kDataDrawPos + HEXPOS( startX ) + xOffset;
+ r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth + xOffset;
MoveTo( r.left, r.top );
LineTo( r.left, r.bottom );
if( dWin->endSel < dWin->editOffset + dWin->linesPerPage * kBytesPerLine )
@@ -1495,10 +1511,10 @@
// Outline Hex
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( start ) * kLineHeight;
r.bottom = r.top + kLineHeight;
- r.left = kDataDrawPos + HEXPOS( startX ) - 3;
- r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) - 3;
+ r.left = kDataDrawPos + HEXPOS( startX ) + xOffset;
+ r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) + xOffset;

- MoveTo( kDataDrawPos - 3, r.bottom );
+ MoveTo( kDataDrawPos + xOffset, r.bottom );
LineTo( r.left, r.bottom );
LineTo( r.left, r.top );
if( dWin->startSel >= dWin->editOffset )
@@ -1527,8 +1543,8 @@
{
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( start ) * kLineHeight + kLineHeight;
r.bottom = /*(kHeaderHeight / 2) +*/ LINENUM( end ) * kLineHeight;
- r.left = kDataDrawPos - 3;
- r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) - 3;
+ r.left = kDataDrawPos + xOffset;
+ r.right = kDataDrawPos + HEXPOS( kBytesPerLine ) + xOffset;
MoveTo( r.left, r.top );
LineTo( r.left, r.bottom );
MoveTo( r.right, r.top );
@@ -1543,8 +1559,8 @@
}
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( end ) * kLineHeight;
r.bottom = r.top + kLineHeight;
- r.left = kDataDrawPos - 3;
- r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth - 3;
+ r.left = kDataDrawPos + xOffset;
+ r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth + xOffset;
MoveTo( r.left, r.top );
LineTo( r.left, r.bottom );
if( dWin->endSel < dWin->editOffset + dWin->linesPerPage * kBytesPerLine )
@@ -1552,7 +1568,7 @@
else
MoveTo( r.right, r.bottom );
LineTo( r.right, r.top );
- LineTo( kDataDrawPos + HEXPOS( kBytesPerLine ) - 3, r.top );
+ LineTo( kDataDrawPos + HEXPOS( kBytesPerLine ) + xOffset, r.top );

r.left = kTextDrawPos - 1;
r.right = kTextDrawPos + CHARPOS( endX ) + kCharWidth - 1;
@@ -1569,8 +1585,8 @@
{
r.top = /*(kHeaderHeight / 2) +*/ LINENUM( start ) * kLineHeight;
r.bottom = r.top + kLineHeight;
- r.left = kDataDrawPos + HEXPOS( startX ) - 3;
- r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth - 3;
+ r.left = kDataDrawPos + HEXPOS( startX ) + xOffset;
+ r.right = kDataDrawPos + HEXPOS( endX ) + kHexWidth + xOffset;
MoveTo( r.left, r.top );
LineTo( r.left, r.bottom );
if( dWin->endSel < dWin->editOffset + dWin->linesPerPage * kBytesPerLine )

0 Comments:

Post a Comment

<< Home

                                                  ####
                                                  ####
                                                  ####
           ########################################################
       ############################################################
     ##############################################################
   ################################################################
  #################################################################
 ##################################################################
###################################################################
###################################################################
###########                                       ####
#########                                         ####
########                                          ####
 #######                                          ####
 ######
  #####
   #####
     ####
        ###

####                                                                                   ####
####                                                                                   ####
###########################################################################################
###########################################################################################
###########################################################################################
###########################################################################################
###########################################################################################
###########################################################################################
###########################################################################################
###########################################################################################
####                                      #####
####                                        #####
                                             #####
                                              #####
                                              ######
                                               ######
                                               ######
                                               #######
                                               #######
                                              ########
####                                         #########
####                                      ############
######################################################
#####################################################
#####################################################
####################################################
###################################################
#################################################
##############################################
##########################################
####
####

####                                              ####
####                                              ####
######################################################
######################################################
######################################################
######################################################
######################################################
######################################################
######################################################
######################################################
####                                  ######
####                                    ######
                                         #######
                                          #######
                                           #######
                                            #######
                                            ########
                                             ########
                                             ########
                                       ###############
                                     #################
                                    ##################
                                   ###################
                                   ###################
                                   ##################
                                   ##################
                                    ################
                                     #############
                                       ########

                                 #########################
                           #####################################
                       #############################################
                    ###################################################
                 #########################################################
               #############################################################
             #################################################################
           #####################################################################
         #########################################################################
        #####################                                 #####################
      ##################                                           ##################
     ##############                                                     ##############
    ###########                                                             ###########
   ##########                                                                 ##########
  ########                                                                       ########
  ######                                                                           ######
 ######                                                                             ######
 #####                                                                               #####
#####                                                                                 #####
#####                                                                                 #####
####                                                                                   ####
####                                                                                   ####
####                                                                                   ####
####                                                                                   ####
#####                                                                                 #####
#####                                                                                 #####
 #####                                                                               #####
 ######                                                                             ######
  ######                                                                           ######
  ########                                                                       ########
   ##########                                                                 ##########
    ###########                                                             ###########
     ##############                                                     ##############
      ##################                                           ##################
        #####################                                 #####################
         #########################################################################
           #####################################################################
             #################################################################
               #############################################################
                 #########################################################
                    ###################################################
                       #############################################
                           #####################################
                                 #########################

##################
##################
##################                                         ###############
##################                                     #######################
    ###########                                      ###########################
    #########                                      ###############################
   ########                                      ###################################
   ######                                       ################            #########
  ######                                       ###############                 #######
  #####                                       ##############                     ######
 #####                                       ##############                        #####
 ####                                       ###############                         #####
 ####                                       ##############                           ####
####                                       ###############                            ####
####                                       ##############                             ####
####                                       ##############                              ####
####                                      ###############                              ####
####                                      ###############                              ####
####                                     ###############                               ####
####                                     ###############                               ####
####                                    ###############                                ####
#####                                   ###############                                ####
#####                                  ###############                                #####
######                                ################                               #####
 ######                              ################                               ######
 #######                            #################                              ######
  #######                         ##################                             ########
  ########                      ###################                            #########
   #########                  ####################                           ##########
    ###########            ######################                        #############
     ###########################################                         ##################
      #########################################                          ##################
        ######################################                           ##################
         ###################################                             ##################
           ###############################
             ###########################
                ######################
                   ##############

                                                  ####
                                                  ####
                                                  ####
           ########################################################
       ############################################################
     ##############################################################
   ################################################################
  #################################################################
 ##################################################################
###################################################################
###################################################################
###########                                       ####
#########                                         ####
########                                          ####
 #######                                          ####
 ######
  #####
   #####
     ####
        ###

    ######
  ##########
 ############
##############
##############
##############
 ############
  ##########
    ######


                  ##################
             ############################
           ################################
         ####################################
       ########################################
     ############################################
    ##############################################
   #############                      #############
  #########                                #########
  #######                                    #######
 ######                                        ######
 #####                                          #####
#####                                            #####
####                                              ####
####                                              ####
####                                              ####
####                                              ####
####                                              ####
 ###                                             ####
 ####                                            ####
  ###                                           ####
  ####                                        ######
   ####                                     #######
    ####                                  ########
     #####                                #######
       #####                               ####
         ####                               #


                  ##################
             ############################
           ################################
         ####################################
       ########################################
     ############################################
    ##############################################
   #############                      #############
  #########                                #########
  #######                                    #######
 ######                                        ######
 #####                                          #####
#####                                            #####
####                                              ####
####                                              ####
####                                              ####
####                                              ####
#####                                            #####
#####                                            #####
 #####                                          #####
 ######                                        ######
  #######                                    #######
  #########                                #########
   #############                      #############
    ##############################################
     ############################################
       ########################################
         ####################################
           ################################
             ############################
                  ##################

####                                              ####
####                                              ####
######################################################
######################################################
######################################################
######################################################
######################################################
######################################################
######################################################
######################################################
####                                      #####
####                                        #####
                                             #####
                                              #####
####                                         #######
####                                        #########
######################################################
######################################################
######################################################
######################################################
#####################################################
####################################################
###################################################
################################################
####                                      #####
####                                        #####
                                             #####
                                              #####
####                                         #######
####                                        #########
######################################################
######################################################
######################################################
######################################################
#####################################################
####################################################
###################################################
################################################
####
####