Making a Library for I2C OLede 128X64

Hi.
Still not sorted this so will post code and files.
Below is a working code that displays text and scrolls it.

#include <Wire.h>
#define OLED_ADDRESS    0x51
#define WRITE_CMD       0x01
#define WRITE_DAT       0x02
#define RESET           0x03
#define DISP_8X16STR    0x10
#define FILL_AREA       0x12
#define SET_SCROHOR     0x13
#define SET_ADDRESS     0x21
#define SCROLL_RIGHT    0x26
#define SCROLL_LEFT     0x27

void setup()
{
  Wire.begin(); 
  Serial.begin(9600);
  OLEDReset();
}
void loop()
{
  delay(1000);  
  OLEDFillArea(0,7,0,128,0);
  delay(1000);
  OLEDdisplay(0,0, "This is Line one");
  OLEDdisplay(2,0, "This is Line two");
  OLEDdisplay(4,0, "Welcome The UK");
  OLEDdisplay(6,0, "Bottom Line");
  ScrollingHorizontal(0x27, 4, 5, 0x07);                                       
  delay(2000); 
  ScrollingHorizontal(0x26, 6, 7, 0x07);
  delay(2000);
  OLEDReset();
  delay(2000);
}

void OLEDReset()
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(RESET);    
  Wire.endTransmission();
}
void WriteData()
{
  unsigned int i;
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(WRITE_DAT);    
    {
    Wire.write(0xFF);  
  }
  Wire.endTransmission();
}
void OLEDdisplay(uint8_t page, uint8_t column, const char *str)
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(DISP_8X16STR);
  Wire.write(page);
  Wire.write(column);
  while(*str != '\0')
  {
    Wire.write(*str++);
  }
  Wire.endTransmission();
}
void OLEDFillArea(uint8_t startpage, uint8_t endpage,uint8_t startcolumn, uint8_t endcolumn,uint8_t filldata)
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(FILL_AREA);
  Wire.write(startpage);
  Wire.write(endpage);
  Wire.write(startcolumn);
  Wire.write(endcolumn);
  Wire.write(filldata);
  Wire.endTransmission();
}
void ScrollingHorizontal(uint8_t lr, uint8_t startpage, uint8_t endpage,uint8_t frames)
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(SET_SCROHOR);
  Wire.write(lr);
  Wire.write(startpage);
  Wire.write(endpage);
  Wire.write(frames);
  Wire.endTransmission();
}

void WriteCommand(const char *cmd)
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(WRITE_CMD);    
  while(*cmd != '\0')
  {
    Wire.write(*cmd++);
  }
  Wire.endTransmission();
}

This is the Code now.

#include <Wire.h>
#include <OledKozig.h>
void setup()
{
  Wire.begin(); 
  Serial.begin(9600);
  OLED.Reset();
}
void loop()
{
  delay(1000);  
  OLED.FillArea(0,7,0,128,0);
  delay(1000);
  OLED.display(0,0, "This is Line one");
  OLED.display(2,0, "This is Line two");
  OLED.display(4,0, "Welcome The UK");
  OLED.display(6,0, "Bottom Line");
  OLED.ScrollingHorizontal(0x27, 4, 5, 0x07);                                       
  delay(2000); 
  OLED.ScrollingHorizontal(0x26, 6, 7, 0x07);
  delay(2000);
  OLED.Reset();
  delay(2000);
}

Now the H file.

#ifndef OledKozig_h
#define OledKozig_h

#include <Wire.h>
#define OLED_ADDRESS    0x51
#define WRITE_CMD       0x01
#define WRITE_DAT       0x02
#define RESET           0x03
#define DISP_8X16STR    0x10
#define FILL_AREA       0x12
#define SET_SCROHOR     0x13
#define SET_ADDRESS     0x21
#define SCROLL_RIGHT    0x26
#define SCROLL_LEFT     0x27

class Oled

{
public:
void Reset();
void WriteData();


void display(uint8_t page, uint8_t column, const char *str);


void FillArea(uint8_t startpage, uint8_t endpage,uint8_t startcolumn, uint8_t endcolumn,uint8_t filldata);

void ScrollingHorizontal(uint8_t lr, uint8_t startpage, uint8_t endpage, uint8_t frames);

void WriteCommand(const char *cmd);


};
#endif

And the CPP file

#include "OledKozig.h"

void OLED::Reset()
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(RESET);    
  Wire.endTransmission();
}
void OLED::WriteData()
{
  unsigned int i;
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(WRITE_DAT);    
    {
    Wire.write(0xFF);  
  }
  Wire.endTransmission();
}
void OLED::display(uint8_t page, uint8_t column, const char *str)
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(DISP_8X16STR);
  Wire.write(page);
  Wire.write(column);
  while(*str != '\0')
  {
    Wire.write(*str++);
  }
  Wire.endTransmission();
}
void OLED::FillArea(uint8_t startpage, uint8_t endpage,uint8_t startcolumn, uint8_t endcolumn,uint8_t filldata)
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(FILL_AREA);
  Wire.write(startpage);
  Wire.write(endpage);
  Wire.write(startcolumn);
  Wire.write(endcolumn);
  Wire.write(filldata);
  Wire.endTransmission();
}
void OLED::ScrollingHorizontal(uint8_t lr, uint8_t startpage, uint8_t endpage,uint8_t frames)
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(SET_SCROHOR);
  Wire.write(lr);
  Wire.write(startpage);
  Wire.write(endpage);
  Wire.write(frames);
  Wire.endTransmission();
}

void OLED::WriteCommand(const char *cmd)
{
  Wire.beginTransmission(OLED_ADDRESS);
  Wire.write(WRITE_CMD);    
  while(*cmd != '\0')
  {
    Wire.write(*cmd++);
  }
  Wire.endTransmission();
}

Any help/pointers would be nice.
Thanks Antony.
Modified :- Code updated